summaryrefslogtreecommitdiff
path: root/schulung_tools/linking/hello/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'schulung_tools/linking/hello/Makefile')
-rw-r--r--schulung_tools/linking/hello/Makefile43
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