summaryrefslogtreecommitdiffstats
path: root/makefile-so/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'makefile-so/Makefile')
-rw-r--r--makefile-so/Makefile33
1 files changed, 33 insertions, 0 deletions
diff --git a/makefile-so/Makefile b/makefile-so/Makefile
new file mode 100644
index 0000000..9a2de9d
--- /dev/null
+++ b/makefile-so/Makefile
@@ -0,0 +1,33 @@
+CC = gcc
+CCFLAGS=-pedantic -Wall
+LD_OPTS=
+
+# $< - the current dependcy file
+# $@ - the current target file
+# $* - the base name of the current target
+# $? - all dependencies that are newer than the target
+# -fPIV : emit position-independent code
+# -nostartfiles : do not use the standard system startup files when linking
+
+%.o: %.c
+ $(CC) $(CCFLAGS) -c -I. -o $@ $<
+
+default: all
+
+clib.o: clib.c
+ $(CC) $(CCFLAGS) -c -fPIC $<
+
+libclib.so: clib.o
+ $(CC) $(CCFLAGS) -shared -nostartfiles -Wl,-soname,libclib.so -o libclib.so.1.0 $<
+
+ldlinks:
+ @ldconfig -n .
+
+main: libclib.so ldlinks main.o
+ $(CC) $(LD_OPTS) main.o -L. -lclib -o main
+
+all: main
+
+clean:
+ rm -f main *.o *.so* *~
+