init
This commit is contained in:
commit
32d4e8c6f2
15 changed files with 108626 additions and 0 deletions
78
GNUmakefile
Normal file
78
GNUmakefile
Normal file
|
|
@ -0,0 +1,78 @@
|
|||
TARGET =
|
||||
|
||||
ifeq ($(TARGET),)
|
||||
TARGET = $(shell uname -s)
|
||||
endif
|
||||
|
||||
### Platforms
|
||||
ifeq ($(TARGET),Linux)
|
||||
UNIX = 1
|
||||
endif
|
||||
|
||||
ifeq ($(TARGET),NetBSD)
|
||||
UNIX = 1
|
||||
endif
|
||||
|
||||
### Stuff
|
||||
ifeq ($(UNIX),1)
|
||||
CC = gcc
|
||||
CFLAGS = -c
|
||||
LDFLAGS =
|
||||
LIBS = -lm
|
||||
|
||||
EXE =
|
||||
endif
|
||||
|
||||
### Common flags
|
||||
CFLAGS += -Iexternal/duktape -Iexternal/stb
|
||||
|
||||
### Rules
|
||||
OBJS = src/main.o
|
||||
OBJS += external/duktape/duktape.o external/stb/stb_ds.o
|
||||
|
||||
.PHONY: all clean mk maint
|
||||
.SUFFIXES: .c .o
|
||||
|
||||
all: pmake$(EXE)
|
||||
|
||||
include mk/compiler.mk
|
||||
|
||||
mk/compiler.mk:
|
||||
find src/compiler -name "*.js" | while read js; do \
|
||||
name="compiler_`echo $$js | rev | cut -d/ -f1 | rev | cut -d. -f1`" ; \
|
||||
c="`echo $$js | sed 's/\.js$$/.c/'`" ; \
|
||||
o="`echo $$js | sed 's/\.js$$/.o/'`" ; \
|
||||
echo "OBJS += $$o" ; \
|
||||
echo "$$c: $$js" ; \
|
||||
echo " xxd -n$$name -i $$js > $$c" ; \
|
||||
echo "" ; \
|
||||
done > $@
|
||||
|
||||
mk: mk/compiler.mk
|
||||
|
||||
maint:
|
||||
rm -f mk/*.mk
|
||||
$(MAKE) mk
|
||||
rm -f src/config.h
|
||||
$(MAKE) src/config.h
|
||||
|
||||
src/config.h:
|
||||
echo "#ifndef __CONFIG_H__" > $@
|
||||
echo "#define __CONFIG_H__" >> $@
|
||||
echo "" >> $@
|
||||
echo "#define COMPILERS \\" >> $@
|
||||
find src/compiler -name "*.js" | while read js; do \
|
||||
echo " X(`echo $$js | rev | cut -d/ -f1 | rev | cut -d. -f1`) \\" ; \
|
||||
done >> $@
|
||||
echo "" >> $@
|
||||
echo "#endif" >> $@
|
||||
|
||||
pmake$(EXE): $(OBJS)
|
||||
$(CC) $(LDFLAGS) -o $@ $(OBJS) $(LIBS)
|
||||
|
||||
.c.o:
|
||||
$(CC) $(CFLAGS) -o $@ $<
|
||||
|
||||
clean:
|
||||
find . -name "*.o" >/dev/null && rm -f $(shell find . -name "*.o")
|
||||
rm -f src/compiler/*.c
|
||||
Loading…
Add table
Add a link
Reference in a new issue