diff options
author | Jérémy Zurcher <jeremy@asynk.ch> | 2012-04-16 09:40:09 +0200 |
---|---|---|
committer | Jérémy Zurcher <jeremy@asynk.ch> | 2012-04-16 09:40:09 +0200 |
commit | 2224f05d43a0d782b626d09f397767597b3d7f4f (patch) | |
tree | 48db4a61f2fe98ade733c57af102c912f475473b | |
parent | 3c54b36fa04a7c54bb685705397ce3eac707f956 (diff) | |
download | skeletons-2224f05d43a0d782b626d09f397767597b3d7f4f.zip skeletons-2224f05d43a0d782b626d09f397767597b3d7f4f.tar.gz |
add makefile-so
-rw-r--r-- | makefile-so/Makefile | 33 | ||||
-rw-r--r-- | makefile-so/clib.c | 18 | ||||
-rw-r--r-- | makefile-so/clib.h | 9 | ||||
-rw-r--r-- | makefile-so/main.c | 9 | ||||
-rwxr-xr-x | makefile-so/test | 5 |
5 files changed, 74 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* *~ + diff --git a/makefile-so/clib.c b/makefile-so/clib.c new file mode 100644 index 0000000..e624baa --- /dev/null +++ b/makefile-so/clib.c @@ -0,0 +1,18 @@ + +#include "clib.h" + +void _init() +{ + printf(" _init()\n"); +} + +void _fini() +{ + printf(" _fini()\n"); +} + +void say_hello(FILE *stream) +{ + fprintf(stream,"hello world\n"); +} + diff --git a/makefile-so/clib.h b/makefile-so/clib.h new file mode 100644 index 0000000..290c27a --- /dev/null +++ b/makefile-so/clib.h @@ -0,0 +1,9 @@ + +#ifndef __C_LIB_H__ +#define __C_LIB_H__ + +#include <stdio.h> + +void say_hello(FILE *stream); + +#endif /* __C_LIB_H__ */ diff --git a/makefile-so/main.c b/makefile-so/main.c new file mode 100644 index 0000000..1a30f1f --- /dev/null +++ b/makefile-so/main.c @@ -0,0 +1,9 @@ +#include<stdio.h> +#include<clib.h> + +int main(int argc, char* argv[], char* envp[]) +{ + say_hello(stdout); + return 0; +} + diff --git a/makefile-so/test b/makefile-so/test new file mode 100755 index 0000000..410ce11 --- /dev/null +++ b/makefile-so/test @@ -0,0 +1,5 @@ +#!/bin/bash +DIR=$(dirname $0) +cd $DIR && make clean && make || exit 1 +LD_LIBRARY_PATH=. ./main + |