1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
|
EXECS = call_add1 dld-test overlay reload reload-test simple call_add2
OBJS = hello.o print_arg.o read-a.out.o list-undefined.o get-sym.o \
need.o test-define.o print_global.o remove.o
LIB = ../libdld.a
INCLUDE = ../dld.h
CC= gcc
CFLAGS = -g -O6 -I..
check: all
all: ${EXECS} ${LIB}
# "test simple"
-simple
# "test call_add1"
-call_add1
-call_add2
# "test overlay"
-overlay
# "test reload"
-reload reload-test
# "test general"
-dld-test <SAMPLE_INPUT
# "tests complete"
clean:
rm -f ${EXECS} *.o
${LIB}: ../dld.c $(INCLUDE)
cd ..; $(MAKE)
simple: $(LIB) $(INCLUDE) simple.c
${CC} ${CFLAGS} simple.c $(LIB) -o simple
call_add1: $(LIB) $(INCLUDE) add1.o call_add1.c
${CC} ${CFLAGS} call_add1.c $(LIB) -o call_add1
call_add2: $(LIB) $(INCLUDE) add2.o call_add2.c
${CC} ${CFLAGS} call_add2.c $(LIB) -o call_add2
overlay: $(LIB) $(INCLUDE) overlay.c chain1.o chain2.o chain3.o
${CC} ${CFLAGS} -fwritable-strings overlay.c $(LIB) -o overlay
reload: $(LIB) $(INCLUDE) reload.o reload-test
${CC} ${CFLAGS} reload.o $(LIB) -o reload
reload-test: reload-test.o Makefile
# ld -r reload-test.o /lib/libc.a -o reload-test
ld -r reload-test.o /usr/lib/libgcc.a /usr/lib/libc.a \
/usr/lib/libgcc.a -o reload-test #linux
hello.o: hello.c
${CC} -c hello.c
dld-test: $(LIB) $(INCLUDE) ${OBJS} main.o
${CC} ${CFLAGS} main.o $(LIB) -o dld-test
.c.o:
${CC} -c ${CFLAGS} $*.c
|