| 1)add -fPIC for $(IPPOOL_RPC_STEM)_xdr.o, $(IPPOOL_RPC_STEM)_client.o |
| 2)add sub target for subdirs-all, and those dependencies below |
| pppd plugin directory build depends on $(IPPOOL_RPC_STEM)_xdr.o |
| $(IPPOOL_RPC_STEM)_client.o ippool_rpc.h |
| |
| ippoold depends on libusl |
| ippoolconfig depends on libcli |
| |
| $(IPPOOL_RPC_STEM)_xdr.o, $(IPPOOL_RPC_STEM)_client.o |
| $(IPPOOL_RPC_STEM)_server.o *.o in main directory depends on ippool_rpc.h |
| as those all directly or indirectly include ippool_rpc.h which is |
| dynamically generated by rpcgen |
| |
| to make parallel make working. |
| 3)include dependency files for pppd. |
| |
| Upstream-Status: Pending |
| |
| Signed-off-by: Yao Zhao <yao.zhao@windriver.com> |
| --- |
| diff --git a/Makefile b/Makefile |
| index 73aa72f..4f7af1d 100644 |
| --- a/Makefile |
| +++ b/Makefile |
| @@ -106,14 +106,14 @@ all: generated-files $(IPPOOL_RPC_STEM)_xdr.o $(IPPOOL_RPC_STEM)_client.o \ |
| subdirs-all $(PROGS.sbin) $(PROGS.bin) |
| |
| # Compile without -Wall because rpcgen-generated code is full of warnings |
| -$(IPPOOL_RPC_STEM)_xdr.o: $(IPPOOL_RPC_STEM)_xdr.c |
| - $(CC) -I. -MMD -g -c -w $(CPPFLAGS) $(CFLAGS.optimize) $< |
| +$(IPPOOL_RPC_STEM)_xdr.o: $(IPPOOL_RPC_STEM)_xdr.c $(IPPOOL_RPC_STEM).h |
| + $(CC) -I. -MMD -g -c -w $(CPPFLAGS) $(CFLAGS.optimize) $< -fPIC |
| |
| -$(IPPOOL_RPC_STEM)_client.o: $(IPPOOL_RPC_STEM)_client.c |
| - $(CC) -I. -MMD -g -c -w $(CPPFLAGS) $(CFLAGS.optimize) $< |
| +$(IPPOOL_RPC_STEM)_client.o: $(IPPOOL_RPC_STEM)_client.c $(IPPOOL_RPC_STEM).h |
| + $(CC) -I. -MMD -g -c -w $(CPPFLAGS) $(CFLAGS.optimize) $< -fPIC |
| |
| -$(IPPOOL_RPC_STEM)_server.o: $(IPPOOL_RPC_STEM)_server.c |
| - $(CC) -I. -MMD -g -c -w $(CPPFLAGS) $(CFLAGS.optimize) $< |
| +$(IPPOOL_RPC_STEM)_server.o: $(IPPOOL_RPC_STEM)_server.c $(IPPOOL_RPC_STEM).h |
| + $(CC) -I. -MMD -g -c -w $(CPPFLAGS) $(CFLAGS.optimize) $< -fPIC |
| |
| $(IPPOOL_RPC_STEM)_xdr.c: $(IPPOOL_RPC_STEM).x |
| -$(RM) $@ |
| @@ -136,8 +136,12 @@ $(IPPOOL_RPC_STEM).h: $(IPPOOL_RPC_STEM).x |
| |
| generated-files: $(RPC_FILES) |
| |
| -subdirs-all: |
| - @for d in $(SUBDIRS); do $(MAKE) -C $$d $(MFLAGS) EXTRA_CFLAGS="$(CPPFLAGS)" all; if [ $$? -ne 0 ]; then exit 1; fi; done |
| +subdirs-all: $(patsubst %,%-dir, $(SUBDIRS)) |
| + |
| +pppd-dir: $(IPPOOL_RPC_STEM)_xdr.o $(IPPOOL_RPC_STEM)_client.o $(IPPOOL_RPC_STEM).h |
| + |
| +$(patsubst %,%-dir,$(SUBDIRS)): |
| + @for d in $(patsubst %-dir,%,$@); do $(MAKE) -C $$d $(MFLAGS) EXTRA_CFLAGS="$(CPPFLAGS)" all; if [ $$? -ne 0 ]; then exit 1; fi; done |
| |
| clean: |
| @for d in $(SUBDIRS); do $(MAKE) -C $$d $(MFLAGS) $@; if [ $$? -ne 0 ]; then exit 1; fi; done |
| @@ -151,13 +155,13 @@ TAGS: |
| @for d in $(SUBDIRS); do $(MAKE) -C $$d $(MFLAGS) $@; done |
| etags -t $(wildcard *.c) $(wildcard *.h) |
| |
| -ippoold: $(IPPOOLD_SRCS.o) |
| - $(CC) -o $@ $^ $(LDFLAGS.ippoold) |
| +ippoold: $(IPPOOLD_SRCS.o) usl-dir |
| + $(CC) -o $@ $(IPPOOLD_SRCS.o) $(LDFLAGS.ippoold) |
| |
| -ippoolconfig: $(IPPOOLCONFIG_SRCS.o) |
| - $(CC) -o $@ $^ $(LDFLAGS.ippoolconfig) |
| +ippoolconfig: $(IPPOOLCONFIG_SRCS.o) cli-dir |
| + $(CC) -o $@ $(IPPOOLCONFIG_SRCS.o) $(LDFLAGS.ippoolconfig) |
| |
| -%.o: %.c |
| +%.o: %.c $(IPPOOL_RPC_STEM).h |
| $(CC) -c $(CFLAGS) $< -o $@ |
| |
| install: all |
| diff --git a/pppd/Makefile b/pppd/Makefile |
| index 78d9b33..106deca 100644 |
| --- a/pppd/Makefile |
| +++ b/pppd/Makefile |
| @@ -24,3 +24,5 @@ install: ippool.so |
| |
| clean: |
| -rm -rf *.o *.so |
| + |
| +include $(wildcard *.d /dev/null) |