diff --git a/src/.cvsignore b/src/.cvsignore index 5e05b6b..9516e89 100644 --- a/src/.cvsignore +++ b/src/.cvsignore @@ -1,4 +1,5 @@ asm asm-static deasm +deasm-static libasm.so.0.0 diff --git a/src/Makefile b/src/Makefile index 538fab9..7ee53ec 100644 --- a/src/Makefile +++ b/src/Makefile @@ -1,5 +1,5 @@ SUBDIRS = arch format -TARGETS = libasm.a libasm.so.0.0 libasm.so.0 libasm.so asm asm-static deasm +TARGETS = libasm.a libasm.so.0.0 libasm.so.0 libasm.so asm asm-static deasm deasm-static PREFIX = /usr/local DESTDIR = LIBDIR = $(PREFIX)/lib @@ -55,6 +55,11 @@ deasm_LDFLAGS = $(LDFLAGSF) $(LDFLAGS) -L. -Wl,-rpath,$(LIBDIR) -lasm deasm: $(deasm_OBJS) libasm.so $(CC) -o deasm $(deasm_OBJS) $(deasm_LDFLAGS) +deasm-static_CFLAGS = $(CPPFLAGSF) $(CPPFLAGS) $(CFLAGSF) $(CFLAGS) +deasm-static_LDFLAGS = $(LDFLAGSF) $(LDFLAGS) `pkg-config --libs cpp` deasm.o libasm.a + +deasm-static: $(deasm-static_OBJS) deasm.o libasm.a + $(CC) -o deasm-static $(deasm-static_OBJS) $(deasm-static_LDFLAGS) arch.o: arch.c ../include/Asm/arch.h ../include/Asm/asm.h arch.h code.h ../config.h $(CC) -D PREFIX=\"$(PREFIX)\" $(libasm_CFLAGS) -c arch.c @@ -82,11 +87,11 @@ deasm.o: deasm.c ../include/Asm.h ../include/Asm/arch.h ../include/Asm/asm.h ../ clean: @for i in $(SUBDIRS); do (cd $$i && $(MAKE) clean) || exit; done - $(RM) -- $(libasm_OBJS) $(asm_OBJS) $(asm-static_OBJS) $(deasm_OBJS) + $(RM) -- $(libasm_OBJS) $(asm_OBJS) $(asm-static_OBJS) $(deasm_OBJS) $(deasm-static_OBJS) distclean: @for i in $(SUBDIRS); do (cd $$i && $(MAKE) distclean) || exit; done - $(RM) -- $(libasm_OBJS) $(asm_OBJS) $(asm-static_OBJS) $(deasm_OBJS) + $(RM) -- $(libasm_OBJS) $(asm_OBJS) $(asm-static_OBJS) $(deasm_OBJS) $(deasm-static_OBJS) $(RM) -- $(TARGETS) install: $(TARGETS) diff --git a/src/project.conf b/src/project.conf index f5e22c9..2d0b0ad 100644 --- a/src/project.conf +++ b/src/project.conf @@ -1,5 +1,5 @@ subdirs=arch,format -targets=libasm,asm,asm-static,deasm +targets=libasm,asm,asm-static,deasm,deasm-static cppflags_force=-I ../include cppflags= cflags_force=-W `pkg-config --cflags cpp` @@ -33,6 +33,11 @@ depends=libasm.so ldflags=-L. -Wl,-rpath,$(LIBDIR) -lasm install=$(BINDIR) +[deasm-static] +type=binary +depends=deasm.o,libasm.a +ldflags=`pkg-config --libs cpp` deasm.o libasm.a + [arch.c] depends=../include/Asm/arch.h,../include/Asm/asm.h,arch.h,code.h,../config.h cppflags=-D PREFIX=\"$(PREFIX)\" diff --git a/tests/.cvsignore b/tests/.cvsignore new file mode 100644 index 0000000..c4f15ec --- /dev/null +++ b/tests/.cvsignore @@ -0,0 +1 @@ +tests.txt diff --git a/tests/Makefile b/tests/Makefile index 12bf4eb..8bf5637 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -1,4 +1,4 @@ -TARGETS = amd64.o arm.o armeb.o armel.o dalvik.o i386.o i386_real.o i486.o i586.o i686.o mips.o mipseb.o mipsel.o java.o sparc.o sparc64.o tests yasep.o yasep16.o yasep32.o +TARGETS = amd64.o arm.o armeb.o armel.o dalvik.o i386.o i386_real.o i486.o i586.o i686.o mips.o mipseb.o mipsel.o java.o sparc.o sparc64.o tests.txt yasep.o yasep16.o yasep32.o PREFIX = /usr/local DESTDIR = BINDIR = $(PREFIX)/bin @@ -60,8 +60,8 @@ sparc.o_ASFLAGS = $(CPPFLAGSF) $(CPPFLAGS) $(ASFLAGS) -a sparc sparc64.o_OBJS = sparc64.o sparc64.o_ASFLAGS = $(CPPFLAGSF) $(CPPFLAGS) $(ASFLAGS) -a sparc64 -tests: amd64.o arm.o armeb.o armel.o i386.o i386_real.o i486.o i586.o i686.o sparc.o sparc64.o yasep.o yasep16.o yasep32.o - ./tests.sh -P "$(PREFIX)" -- "tests" +tests.txt: amd64.o arm.o armeb.o armel.o i386.o i386_real.o i486.o i586.o i686.o sparc.o sparc64.o yasep.o yasep16.o yasep32.o + ./tests.sh -P "$(PREFIX)" -- "tests.txt" yasep.o_OBJS = yasep.o yasep.o_ASFLAGS = $(CPPFLAGSF) $(CPPFLAGS) $(ASFLAGS) -a yasep -f flat @@ -130,7 +130,7 @@ yasep32.o: yasep32.asm ../src/asm yasep.asm $(AS) $(yasep32.o_ASFLAGS) -o yasep32.o yasep32.asm clean: - $(RM) -- $(amd64.o_OBJS) $(arm.o_OBJS) $(armeb.o_OBJS) $(armel.o_OBJS) $(dalvik.o_OBJS) $(i386.o_OBJS) $(i386_real.o_OBJS) $(i486.o_OBJS) $(i586.o_OBJS) $(i686.o_OBJS) $(mips.o_OBJS) $(mipseb.o_OBJS) $(mipsel.o_OBJS) $(java.o_OBJS) $(sparc.o_OBJS) $(sparc64.o_OBJS) $(tests_OBJS) $(yasep.o_OBJS) $(yasep16.o_OBJS) $(yasep32.o_OBJS) + $(RM) -- $(amd64.o_OBJS) $(arm.o_OBJS) $(armeb.o_OBJS) $(armel.o_OBJS) $(dalvik.o_OBJS) $(i386.o_OBJS) $(i386_real.o_OBJS) $(i486.o_OBJS) $(i586.o_OBJS) $(i686.o_OBJS) $(mips.o_OBJS) $(mipseb.o_OBJS) $(mipsel.o_OBJS) $(java.o_OBJS) $(sparc.o_OBJS) $(sparc64.o_OBJS) $(tests.txt_OBJS) $(yasep.o_OBJS) $(yasep16.o_OBJS) $(yasep32.o_OBJS) distclean: clean $(RM) -- $(TARGETS) diff --git a/tests/project.conf b/tests/project.conf index 23c3036..e503b01 100644 --- a/tests/project.conf +++ b/tests/project.conf @@ -1,4 +1,4 @@ -targets=amd64.o,arm.o,armeb.o,armel.o,dalvik.o,i386.o,i386_real.o,i486.o,i586.o,i686.o,mips.o,mipseb.o,mipsel.o,java.o,sparc.o,sparc64.o,tests,yasep.o,yasep16.o,yasep32.o +targets=amd64.o,arm.o,armeb.o,armel.o,dalvik.o,i386.o,i386_real.o,i486.o,i586.o,i686.o,mips.o,mipseb.o,mipsel.o,java.o,sparc.o,sparc64.o,tests.txt,yasep.o,yasep16.o,yasep32.o as=../src/asm-static dist=Makefile,tests.sh @@ -130,7 +130,7 @@ sources=sparc64.asm [sparc64.asm] depends=../src/asm -[tests] +[tests.txt] type=script script=./tests.sh depends=amd64.o,arm.o,armeb.o,armel.o,i386.o,i386_real.o,i486.o,i586.o,i686.o,sparc.o,sparc64.o,yasep.o,yasep16.o,yasep32.o diff --git a/tests/tests.sh b/tests/tests.sh index 41cf74e..f79314a 100755 --- a/tests/tests.sh +++ b/tests/tests.sh @@ -17,9 +17,8 @@ #variables -DEASM="../src/deasm" +DEASM="../src/deasm-static" DEBUG="debug" -DEVNULL="/dev/null" #functions @@ -34,7 +33,7 @@ deasm() [ $# -eq 2 ] && format="$2" [ -n "$format" ] && cmd="$cmd -a $arch -f $format" - $DEBUG $cmd "$file" > $DEVNULL + $DEBUG $cmd "$file" } @@ -46,25 +45,52 @@ debug() } +#usage +_usage() +{ + echo "Usage: tests.sh" 1>&2 + return 1 +} + + #main +while getopts "P:" "name"; do + case "$name" in + P) + #XXX ignored + ;; + ?) + _usage + exit $? + ;; + esac +done +shift $((OPTIND - 1)) +if [ $# -ne 1 ]; then + _usage + exit $? +fi +target="$1" + +> "$target" FAILED= -deasm amd64 || FAILED="$FAILED amd64(error $?)" -deasm arm || FAILED="$FAILED arm(error $?)" -deasm armeb || FAILED="$FAILED armeb(error $?)" -deasm armel || FAILED="$FAILED armel(error $?)" -deasm dalvik flat || FAILED="$FAILED dalvik(error $?)" -deasm i386 || FAILED="$FAILED i386(error $?)" -deasm i386_real flat || FAILED="$FAILED i386_flat(error $?)" -deasm i486 || FAILED="$FAILED i486(error $?)" -deasm i586 || FAILED="$FAILED i586(error $?)" -deasm i686 || FAILED="$FAILED i686(error $?)" -deasm java flat || FAILED="$FAILED java(error $?)" -deasm sparc || FAILED="$FAILED sparc(error $?)" -deasm sparc64 || FAILED="$FAILED sparc64(error $?)" -deasm yasep flat || FAILED="$FAILED yasep(error $?)" -deasm yasep16 flat || FAILED="$FAILED yasep16(error $?)" -deasm yasep32 flat || FAILED="$FAILED yasep32(error $?)" -[ -z "$FAILED" ] && exit 0 +deasm amd64 >> "$target" || FAILED="$FAILED amd64(error $?)" +deasm arm >> "$target" || FAILED="$FAILED arm(error $?)" +deasm armeb >> "$target" || FAILED="$FAILED armeb(error $?)" +deasm armel >> "$target" || FAILED="$FAILED armel(error $?)" +deasm dalvik flat >> "$target" || FAILED="$FAILED dalvik(error $?)" +deasm i386 >> "$target" || FAILED="$FAILED i386(error $?)" +deasm i386_real flat >> "$target" || FAILED="$FAILED i386_flat(error $?)" +deasm i486 >> "$target" || FAILED="$FAILED i486(error $?)" +deasm i586 >> "$target" || FAILED="$FAILED i586(error $?)" +deasm i686 >> "$target" || FAILED="$FAILED i686(error $?)" +deasm java flat >> "$target" || FAILED="$FAILED java(error $?)" +deasm sparc >> "$target" || FAILED="$FAILED sparc(error $?)" +deasm sparc64 >> "$target" || FAILED="$FAILED sparc64(error $?)" +deasm yasep flat >> "$target" || FAILED="$FAILED yasep(error $?)" +deasm yasep16 flat >> "$target" || FAILED="$FAILED yasep16(error $?)" +deasm yasep32 flat >> "$target" || FAILED="$FAILED yasep32(error $?)" +[ -z "$FAILED" ] && exit 0 echo "Failed tests:$FAILED" 1>&2 #XXX ignore errors for now #exit 2