diff --git a/src/tools-source/fl_wrapper/Makefile b/src/tools-source/fl_wrapper/Makefile index 05cc5a4..83d6956 100644 --- a/src/tools-source/fl_wrapper/Makefile +++ b/src/tools-source/fl_wrapper/Makefile @@ -13,10 +13,15 @@ # --- SDE-COPYRIGHT-NOTE-END --- CC=gcc -CFLAGS=-Wall -Wextra -O2 -ldl -shared -fPIC +CFLAGS=-Wall -Wextra +LIB_LDFLAGS=-ldl -shared -fPIC +BIN_LDFLAGS= ifeq ($(DEBUG),yes) CFLAGS += -DDEBUG=1 + CFLAGS += -g -O0 +else + CFLAGS += -O2 endif ifneq ($(BASE),) CFLAGS += '-DFLWRAPPER_BASEDIR="$(BASE)"' @@ -25,20 +30,32 @@ ifneq ($(LIBC),) CFLAGS += '-DFLWRAPPER_LIBC="$(LIBC)"' endif +FLTEST=fltest + LIB=fl_wrapper.so GENERATED=fl_wrapper_generated.c HEADER=fl_wrapper.h SRCS=fl_wrapper.c fl_wrapper_execl.c $(GENERATED) -.PHONY: clean +.PHONY: clean test gdb $(LIB): $(SRCS) $(HEADER) - $(CC) $(CFLAGS) -o "$@.tmp" $< + $(CC) $(CFLAGS) $(LIB_LDFLAGS) -o "$@.tmp" $< mv "$@.tmp" "$@" +$(FLTEST): fl_wrapper_test.c + $(CC) $(CFLAGS) $(BIN_LDFLAGS) -o $@ $< + +test: $(LIB) $(FLTEST) + sh ./fl_wrapper_test.sh + +gdb: $(LIB) $(FLTEST) + sh ./fl_wrapper_test.sh gdb + clean: @rm -vf $(LIB) *.o *.tmp $(GENERATED) $(HEADER) + @rm -vf fltest* rlog.txt wlog.txt $(GENERATED): $(GENERATED).sh $(wildcard tpl_*.c) $(HEADER): $(HEADER).sh $(GENERATED).sh diff --git a/src/tools-source/fl_wrapper/fl_wrapper_test.sh b/src/tools-source/fl_wrapper/fl_wrapper_test.sh index af8cc0d..228168c 100644 --- a/src/tools-source/fl_wrapper/fl_wrapper_test.sh +++ b/src/tools-source/fl_wrapper/fl_wrapper_test.sh @@ -3,9 +3,7 @@ # This copyright note is auto-generated by ./scripts/Create-CopyPatch. # # Filename: src/tools-source/fl_wrapper_test.sh -# Copyright (C) 2006 The OpenSDE Project -# Copyright (C) 2004 - 2006 The T2 SDE Project -# Copyright (C) 1998 - 2003 Clifford Wolf +# Copyright (C) 2010 The OpenSDE Project # # More information can be found in the files COPYING and README. # @@ -15,19 +13,21 @@ # GNU General Public License can be found in the file COPYING. # --- SDE-COPYRIGHT-NOTE-END --- -for x in exec{l,v}{,p,e} ; do -touch fltest_$x ; done - -bash src/tools-source/fl_wrapper.c.sh > fl_wrapper.c -gcc -O2 -shared -fPIC -Wall -ldl fl_wrapper.c -o fl_wrapper.so - echo -n > rlog.txt echo -n > wlog.txt +if [ "$1" = "gdb" ]; then + shift + cat > fltest.gdb <<-EOT + set env LD_PRELOAD ./fl_wrapper.so + set env FLWRAPPER_RLOG rlog.txt + set env FLWRAPPER_WLOG wlog.txt + EOT + + exec gdb -x fltest.gdb ./fltest +fi + export FLWRAPPER_RLOG=rlog.txt export FLWRAPPER_WLOG=wlog.txt -gcc src/tools-source/fl_wrapper_test.c -o fltest_bin -LD_PRELOAD=./fl_wrapper.so ./fltest_bin - -#rm fltest_* fl_wrapper.so +LD_PRELOAD=./fl_wrapper.so ./fltest