Expanded Makefile to build and install shared and static libs
This commit is contained in:
parent
8b1dbe6064
commit
9d3d12eea7
3 changed files with 47 additions and 10 deletions
3
.gitignore
vendored
3
.gitignore
vendored
|
@ -1,2 +1,5 @@
|
||||||
haggis
|
haggis
|
||||||
config.mk
|
config.mk
|
||||||
|
*.o
|
||||||
|
*.a
|
||||||
|
*.so
|
||||||
|
|
53
Makefile
53
Makefile
|
@ -32,18 +32,53 @@
|
||||||
|
|
||||||
-include config.mk
|
-include config.mk
|
||||||
|
|
||||||
progname = haggis;
|
PREFIX ?= /usr/local
|
||||||
srcs += src/haggis.c
|
includedir = $(DESTDIR)$(PREFIX)/include
|
||||||
hdrs += include/haggis.h
|
libdir = $(DESTDIR)$(PREFIX)/lib
|
||||||
|
|
||||||
cflags += -Iinclude
|
srcs += src/haggis.c
|
||||||
|
hdrs += include/haggis.h
|
||||||
|
|
||||||
all: haggis
|
cflags += -Wall -Werror
|
||||||
|
cflags += -Iinclude
|
||||||
|
|
||||||
haggis: $(srcs) $(hdrs)
|
all: libhaggis.a libhaggis.so
|
||||||
$(CC) $(cflags) -o $@ $<
|
|
||||||
|
static: libhaggis.a
|
||||||
|
|
||||||
|
shared: libhaggis.so
|
||||||
|
|
||||||
|
install: install-headers install-shared install-static
|
||||||
|
|
||||||
|
install-includedir:
|
||||||
|
[ -d $(includedir) ] || install -d $(includedir)
|
||||||
|
|
||||||
|
install-libdir:
|
||||||
|
[ -d $(libdir) ] || install -d $(libdir)
|
||||||
|
|
||||||
|
install-shared: libhaggis.so install-libdir
|
||||||
|
install -m755 libhaggis.so $(libdir)/
|
||||||
|
|
||||||
|
install-static: libhaggis.a install-libdir
|
||||||
|
install -m644 libhaggis.a $(libdir)/
|
||||||
|
|
||||||
|
install-headers: $(hdrs) install-includedir
|
||||||
|
install -m644 $(hdrs) $(includedir)/
|
||||||
|
|
||||||
|
haggis.o: $(srcs) $(hdrs)
|
||||||
|
$(CC) -c $(cflags) $(srcs)
|
||||||
|
|
||||||
|
libhaggis.a: haggis.o
|
||||||
|
$(AR) rcs $@ haggis.o
|
||||||
|
|
||||||
|
haggis_shared.o: $(srcs) $(hdrs)
|
||||||
|
$(CC) -c $(cflags) -fpic -o $@ $(srcs)
|
||||||
|
|
||||||
|
libhaggis.so: haggis_shared.o
|
||||||
|
$(CC) -shared -o $@ haggis_shared.o
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -rf $(progname)
|
rm -rf *.a *.so *.o
|
||||||
|
|
||||||
.PHONY: all clean
|
.PHONY: all clean shared static install install-includedir install-libdir \
|
||||||
|
install-headers install-shared install-static
|
||||||
|
|
|
@ -153,4 +153,3 @@ int haggis_load_node(FILE *stream, struct haggis_node *node) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int main() { printf("Hello, Haggis!\n"); }
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue