Linux--同时生成动静态库的Makefile写法

.PHONY:all
all:liboutput.so liboutput.a

liboutput.so:mymath_d.o myprint_d.o
	gcc -fPIC mymath_d.o myprint_d.o -o liboutput.so
mymath_d.o:mymath.c
	gcc -c -fPIC mymath.c -o mymath_d.o
myprint_d.o:myprint.c
	gcc -c -fPIC myprint.c -o myprint_d.o

liboutput.a: mymath.o myprint.o
	ar -rc liboutput.a mymath.o myprint.o
mymath.o:mymath.c
	gcc -c mymath.c -std=c99 -o mymath.o
myprint.o:myprint.c
	gcc -c myprint.c -std=c99 -o myprint.o

.PHONY:output
output:
	mkdir -p output/lib
	mkdir -p output/include
	cp -rf *.h output/include
	cp -rf *.a output/lib
  cp -rf *.so output/lib
.PHONY:clean
clean:
	rm -f *.o *.a *.so output

你可能感兴趣的:(Linux,linux)