forked from pyrite-dev/pmake
stuff
This commit is contained in:
parent
fcc88de8d3
commit
ece62938a9
7 changed files with 36 additions and 7 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
|
@ -1,4 +1,5 @@
|
||||||
/pmake*
|
/pmake*
|
||||||
*.o
|
*.o
|
||||||
/src/compiler/*.c
|
/src/compiler/*.c
|
||||||
|
/src/action/*.c
|
||||||
/src/js/*.c
|
/src/js/*.c
|
||||||
|
|
|
||||||
23
GNUmakefile
23
GNUmakefile
|
|
@ -30,16 +30,18 @@ CFLAGS += -Iexternal/duktape -Iexternal/stb
|
||||||
OBJS = src/main.o src/js.o
|
OBJS = src/main.o src/js.o
|
||||||
OBJS += external/duktape/duktape.o external/stb/stb_ds.o
|
OBJS += external/duktape/duktape.o external/stb/stb_ds.o
|
||||||
|
|
||||||
|
NAME = rev | cut -d/ -f1 | rev | cut -d. -f1
|
||||||
|
|
||||||
.PHONY: all clean mk maint
|
.PHONY: all clean mk maint
|
||||||
.SUFFIXES: .c .o
|
.SUFFIXES: .c .o
|
||||||
|
|
||||||
all: pmake$(EXE)
|
all: pmake$(EXE)
|
||||||
|
|
||||||
include mk/compiler.mk
|
include mk/js.mk
|
||||||
|
|
||||||
mk/compiler.mk:
|
mk/js.mk:
|
||||||
find src/js src/compiler -name "*.js" | while read js; do \
|
find src/js src/action src/compiler -name "*.js" | while read js; do \
|
||||||
name="`echo $$js | cut -d/ -f2`_`echo $$js | rev | cut -d/ -f1 | rev | cut -d. -f1`" ; \
|
name="`echo $$js | cut -d/ -f2`_`echo $$js | $(NAME)`" ; \
|
||||||
c="`echo $$js | sed 's/\.js$$/.c/'`" ; \
|
c="`echo $$js | sed 's/\.js$$/.c/'`" ; \
|
||||||
o="`echo $$js | sed 's/\.js$$/.o/'`" ; \
|
o="`echo $$js | sed 's/\.js$$/.o/'`" ; \
|
||||||
echo "OBJS += $$o" ; \
|
echo "OBJS += $$o" ; \
|
||||||
|
|
@ -48,7 +50,7 @@ mk/compiler.mk:
|
||||||
echo "" ; \
|
echo "" ; \
|
||||||
done > $@
|
done > $@
|
||||||
|
|
||||||
mk: mk/compiler.mk
|
mk: mk/js.mk
|
||||||
|
|
||||||
maint:
|
maint:
|
||||||
rm -f mk/*.mk
|
rm -f mk/*.mk
|
||||||
|
|
@ -62,9 +64,18 @@ src/config.h:
|
||||||
echo "" >> $@
|
echo "" >> $@
|
||||||
echo "#define COMPILERS \\" >> $@
|
echo "#define COMPILERS \\" >> $@
|
||||||
find src/compiler -name "*.js" | while read js; do \
|
find src/compiler -name "*.js" | while read js; do \
|
||||||
echo " X(`echo $$js | rev | cut -d/ -f1 | rev | cut -d. -f1`) \\" ; \
|
echo " X(`echo $$js | $(NAME)`) \\" ; \
|
||||||
done >> $@
|
done >> $@
|
||||||
echo "" >> $@
|
echo "" >> $@
|
||||||
|
echo "#define ACTIONS \\" >> $@
|
||||||
|
find src/action -name "*.js" | while read js; do \
|
||||||
|
echo " X(`echo $$js | $(NAME)`) \\" ; \
|
||||||
|
done >> $@
|
||||||
|
echo "" >> $@
|
||||||
|
echo "#define JS \\" >> $@
|
||||||
|
echo " COMPILERS \\" >> $@
|
||||||
|
echo " ACTIONS" >> $@
|
||||||
|
echo "" >> $@
|
||||||
echo "#endif" >> $@
|
echo "#endif" >> $@
|
||||||
|
|
||||||
pmake$(EXE): $(OBJS)
|
pmake$(EXE): $(OBJS)
|
||||||
|
|
|
||||||
4
mk/compiler.mk → mk/js.mk
generated
4
mk/compiler.mk → mk/js.mk
generated
|
|
@ -6,6 +6,10 @@ OBJS += src/js/cmdline.o
|
||||||
src/js/cmdline.c: src/js/cmdline.js
|
src/js/cmdline.c: src/js/cmdline.js
|
||||||
xxd -njs_cmdline -i src/js/cmdline.js > src/js/cmdline.c
|
xxd -njs_cmdline -i src/js/cmdline.js > src/js/cmdline.c
|
||||||
|
|
||||||
|
OBJS += src/action/gmake.o
|
||||||
|
src/action/gmake.c: src/action/gmake.js
|
||||||
|
xxd -naction_gmake -i src/action/gmake.js > src/action/gmake.c
|
||||||
|
|
||||||
OBJS += src/compiler/watcom.o
|
OBJS += src/compiler/watcom.o
|
||||||
src/compiler/watcom.c: src/compiler/watcom.js
|
src/compiler/watcom.c: src/compiler/watcom.js
|
||||||
xxd -ncompiler_watcom -i src/compiler/watcom.js > src/compiler/watcom.c
|
xxd -ncompiler_watcom -i src/compiler/watcom.js > src/compiler/watcom.c
|
||||||
0
src/action/gmake.js
Normal file
0
src/action/gmake.js
Normal file
7
src/config.h
generated
7
src/config.h
generated
|
|
@ -5,4 +5,11 @@
|
||||||
X(watcom) \
|
X(watcom) \
|
||||||
X(gcc) \
|
X(gcc) \
|
||||||
|
|
||||||
|
#define ACTIONS \
|
||||||
|
X(gmake) \
|
||||||
|
|
||||||
|
#define JS \
|
||||||
|
COMPILERS \
|
||||||
|
ACTIONS
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
|
|
@ -9,5 +9,11 @@ for(var i = 1; i < ARGV.length; i++){
|
||||||
console.log("");
|
console.log("");
|
||||||
console.log("Usage: " + ARGV[0] + " [options] action [arguments]");
|
console.log("Usage: " + ARGV[0] + " [options] action [arguments]");
|
||||||
process.exit(0);
|
process.exit(0);
|
||||||
|
}else if(ARGV[i].startsWith("--")){
|
||||||
|
console.log("Error: invalid option '" + ARGV[i].substr(2) + "'");
|
||||||
|
process.exit(1);
|
||||||
|
}else{
|
||||||
|
console.log("Error: no such action '" + ARGV[i] + "'");
|
||||||
|
process.exit(1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@
|
||||||
extern unsigned int name ## _len;
|
extern unsigned int name ## _len;
|
||||||
|
|
||||||
#define X(name) LOAD(compiler_ ## name)
|
#define X(name) LOAD(compiler_ ## name)
|
||||||
COMPILERS;
|
JS;
|
||||||
#undef X
|
#undef X
|
||||||
|
|
||||||
/* js.c */
|
/* js.c */
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue