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
|
||||
config.mk
|
||||
*.o
|
||||
*.a
|
||||
*.so
|
||||
|
|
47
Makefile
47
Makefile
|
@ -32,18 +32,53 @@
|
|||
|
||||
-include config.mk
|
||||
|
||||
progname = haggis;
|
||||
PREFIX ?= /usr/local
|
||||
includedir = $(DESTDIR)$(PREFIX)/include
|
||||
libdir = $(DESTDIR)$(PREFIX)/lib
|
||||
|
||||
srcs += src/haggis.c
|
||||
hdrs += include/haggis.h
|
||||
|
||||
cflags += -Wall -Werror
|
||||
cflags += -Iinclude
|
||||
|
||||
all: haggis
|
||||
all: libhaggis.a libhaggis.so
|
||||
|
||||
haggis: $(srcs) $(hdrs)
|
||||
$(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:
|
||||
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;
|
||||
}
|
||||
|
||||
int main() { printf("Hello, Haggis!\n"); }
|
||||
|
|
Loading…
Add table
Reference in a new issue