92 |
|
|
93 |
OBJECTS:=$(OBJS) $(LIBFILES) new_init.o $(GCLIB) $(LAST_FILE) $(FIRST_FILE) |
OBJECTS:=$(OBJS) $(LIBFILES) new_init.o $(GCLIB) $(LAST_FILE) $(FIRST_FILE) |
94 |
|
|
95 |
all: $(OBJECTS) TAGS #plt.o |
all: $(OBJECTS) #plt.o |
|
|
|
|
TAGS: $(HFILES) $(patsubst %.o,%.c,$(OBJECTS)) |
|
|
etags $^ |
|
96 |
|
|
97 |
go: |
go: |
98 |
$(MAKE) "CFLAGS=${CFLAGS} -pg" |
$(MAKE) "CFLAGS=${CFLAGS} -pg" |
152 |
# awk '/my_plt/ {next} {printf("extern void *%s;\n",$$1);}'>$@ |
# awk '/my_plt/ {next} {printf("extern void *%s;\n",$$1);}'>$@ |
153 |
|
|
154 |
plttest.o: plttest.c |
plttest.o: plttest.c |
155 |
$(CC) -c $(CFLAGS) $(DEFS) $*.c $(AUX_INFO) |
$(CC) -c $(CFLAGS) $(DEFS) -fno-builtin $*.c $(AUX_INFO) |
156 |
|
|
157 |
plt.h: plttest.o |
pltd.h: plttest.o |
158 |
nm $< | awk '/ U / {a=$$2;if (k) sub("^_","",a);\ |
nm $< | awk '/ U / {a=$$2;if (k) sub("^_","",a);\ |
159 |
b=a;gsub("_","",b);\ |
b=a;gsub("_","",b);\ |
160 |
if (match(j,b)) printf("MY_PLT(%s)\n",a)}' \ |
if (!match(j,b) && !match(b,"IO")) printf("extern int %s();\n",a)}' \ |
161 |
j="$$(awk '/main/ {i=1;next} {if (!i) next} \ |
j="$$(awk '/main/ {i=1;next} {if (!i) next} \ |
162 |
/^ *[a-zA-Z_]*\(/ {sub("\\(.*$$","",$$1);print $$1}' plttest.c)" \ |
/^ *[a-zA-Z_=]*\(/ {sub("\\(.*$$","",$$1);sub("^.*=","",$$1);print $$1}' plttest.c)" \ |
163 |
|
k=$(LEADING_UNDERSCORE) |\ |
164 |
|
sort | \ |
165 |
|
awk '{A[++k]=$$0} END {for (i=1;i<=k;i++) \ |
166 |
|
printf("%s\n",A[i]);}' >$@ |
167 |
|
|
168 |
|
plt.h: plttest.o pltd.h |
169 |
|
nm $< | awk '/ U / {a=$$2;if (k) sub("^_","",a);\ |
170 |
|
b=a;gsub("_","",b);\ |
171 |
|
printf("MY_PLT(%s)\n",a)}' \ |
172 |
k=$(LEADING_UNDERSCORE) |\ |
k=$(LEADING_UNDERSCORE) |\ |
173 |
sort | \ |
sort | \ |
174 |
awk '{A[++k]=$$0} END {for (i=1;i<=k;i++) \ |
awk '{A[++k]=$$0} END {for (i=1;i<=k;i++) \ |
175 |
printf("%s%s\n",A[i],i==k ? "" : ",");}' >$@ |
printf("%s%s\n",A[i],i==k ? "" : ",");}' >$@ |
176 |
|
echo Plt table: |
177 |
|
cat $@ |
178 |
|
|
179 |
plt.o: plt.c plt.h |
plt.o: plt.c plt.h |
180 |
$(CC) -c $(CFLAGS) $(DEFS) $*.c $(AUX_INFO) |
$(CC) -c $(CFLAGS) $(DEFS) $*.c $(AUX_INFO) |
187 |
$(AR) gcllib.a ${ALIB} |
$(AR) gcllib.a ${ALIB} |
188 |
${RANLIB} gcllib.a |
${RANLIB} gcllib.a |
189 |
clean: |
clean: |
190 |
rm -f $(OBJS) ${ALIB} new_init.o $(LAST_FILE) $(FIRST_FILE) *.a grab_defs$(EXE) *.ini tmpx foo.c cmpinclude.h new_init.c $(DECL) def undef udef.h void.h plt.h plttest.o TAGS |
rm -f $(OBJS) ${ALIB} new_init.o $(LAST_FILE) $(FIRST_FILE) *.a grab_defs$(EXE) *.ini tmpx foo.c cmpinclude.h new_init.c $(DECL) def undef udef.h void.h plt.h pltd.h plttest.o TAGS |
191 |
|
|
192 |
fsavres.o: /lib/libc.a |
fsavres.o: /lib/libc.a |
193 |
ar xv /lib/libc.a fsavres.o |
ar xv /lib/libc.a fsavres.o |