diff options
| author | John Ogness <john.ogness@linutronix.de> | 2019-01-28 19:40:24 +0106 |
|---|---|---|
| committer | John Ogness <john.ogness@linutronix.de> | 2019-01-28 19:40:24 +0106 |
| commit | 9a7ca2ce530c59abcdccb8a730c53c6098b3da3a (patch) | |
| tree | b0510cec8968191f5c12cf9088f25607881f73af /schulung_tools/linking/hello/Makefile | |
| parent | b990733af9d6a07c2130daeb5fd39c75f6804441 (diff) | |
linking/hello: fixup Makefiles
It is good to have Makefile and autotool versions for compare. But
the Makefiles should not be intentially horrible. Clean them up to
the level that we teach in the training.
Signed-off-by: John Ogness <john.ogness@linutronix.de>
Diffstat (limited to 'schulung_tools/linking/hello/Makefile')
| -rw-r--r-- | schulung_tools/linking/hello/Makefile | 43 |
1 files changed, 20 insertions, 23 deletions
diff --git a/schulung_tools/linking/hello/Makefile b/schulung_tools/linking/hello/Makefile index a5b4c26..c383eae 100644 --- a/schulung_tools/linking/hello/Makefile +++ b/schulung_tools/linking/hello/Makefile @@ -1,33 +1,30 @@ -hello: hello.c libfunc.so - $(CROSS_COMPILE)gcc -g -ohello hello.c -L. -lfunc +CC = $(CROSS_COMPILE)gcc +LD = $(CROSS_COMPILE)gcc -hello2: hello.c libfunc.a - rm -f libfunc.so - $(CROSS_COMPILE)gcc -g -ohello2 hello.c -L. -lfunc +OBJS = hello.o -libfunc.so: libfunc.so.0.0.1 - ln -s libfunc.so.0.0.1 libfunc.so +CFLAGS = -g -Wall -Werror -I. +LDFLAGS = -L. -lfunc -libfunc.so.0.0.1: func1.o func2.o - $(CROSS_COMPILE)gcc -shared -olibfunc.so.0.0.1 -Wl,-soname,libfunc.so.0 func1.o func2.o +hello: $(OBJS) libfunc.so + $(CC) -ohello $(OBJS) $(LDFLAGS) -libfunc.a: func1.o func2.o - $(CROSS_COMPILE)ar cr libfunc.a func1.o func2.o - $(CROSS_COMPILE)ranlib libfunc.a +hello-static: $(OBJS) libfunc.a + rm -f libfunc.so + $(CC) -o$@ $(OBJS) $(LDFLAGS) -func1.o: func1.c - $(CROSS_COMPILE)gcc -fPIC -g -c func1.c +%.c: %.o + $(CC) -c -o$@ $(CFLAGS) $< -func2.o: func2.c - $(CROSS_COMPILE)gcc -fPIC -g -c func2.c +libfunc.%: + $(MAKE) -f Makefile-lib $@ -install_lib: libfunc.so.0.0.1 - echo "/opt/acme/lib" > /etc/ld.so.conf.d/acme.conf - mkdir -p /opt/acme/lib - cp libfunc.so.0.0.1 /opt/acme/lib - ldconfig +install: hello + $(MAKE) -f Makefile-lib install + cp $< /usr/bin/ clean: - rm -f hello hello2 *.o lib* + rm -f hello hello-static $(OBJS) + $(MAKE) -f Makefile-lib $@ -.PHONY: clean +.PHONY: install clean |
