nuclear@0: src = $(wildcard src/*.c) \ nuclear@0: $(wildcard src/filefmt/*.c) \ nuclear@0: $(wildcard src/backend/*.c) nuclear@0: hdr = gamesnd.h nuclear@0: obj = $(src:.c=.o) nuclear@0: dep = $(obj:.o=.d) nuclear@0: name = gamesnd nuclear@0: lib_a = lib$(name).a nuclear@0: nuclear@0: abimaj = 0 nuclear@0: abimin = 1 nuclear@0: nuclear@0: CFLAGS = -pedantic -Wall $(pic) $(dbg) $(opt) nuclear@0: LDFLAGS = $(libs) nuclear@0: nuclear@0: ifeq ($(shell uname -s), Darwin) nuclear@0: lib_so = lib$(name).dylib nuclear@0: shared = -dynamiclib nuclear@0: else nuclear@0: devlink = lib$(name).so nuclear@0: soname = $(devlink).$(abimaj) nuclear@0: lib_so = $(soname).$(abimin) nuclear@0: shared = -shared -Wl,-soname=$(soname) nuclear@0: pic = -fPIC nuclear@0: endif nuclear@0: nuclear@0: nuclear@0: $(lib_so): $(obj) nuclear@0: $(CC) -o $@ $(shared) $(obj) $(LDFLAGS) nuclear@0: nuclear@0: -include $(dep) nuclear@0: nuclear@0: %.d: %.c nuclear@0: @$(CPP) $(CFLAGS) $< -MM -MT $(@:.d=.o) >$@ nuclear@0: nuclear@0: .PHONY: clean nuclear@0: clean: nuclear@0: rm -f $(obj) $(bin) $(lib_so) $(lib_a) $(dep) nuclear@0: nuclear@0: .PHONY: install nuclear@0: install: $(lib_so) nuclear@0: mkdir -p $(DESTDIR)$(PREFIX)/include $(DESTDIR)$(PREFIX)/lib nuclear@0: cp include/$(hdr) $(DESTDIR)$(PREFIX)/include/$(hdr) nuclear@0: cp $(lib_so) $(DESTDIR)$(PREFIX)/lib/$(lib_so) nuclear@0: [ -n "$(soname)" ] \ nuclear@0: && cd $(DESTDIR)$(PREFIX)/lib \ nuclear@0: && rm -f $(soname) $(devlink) \ nuclear@0: && ln -s $(lib_so) $(soname) \ nuclear@0: && ln -s $(soname) $(devlink) \ nuclear@0: || true nuclear@0: nuclear@0: .PHONY: uninstall nuclear@0: uninstall: nuclear@0: rm -f $(DESTDIR)$(PREFIX)/include/$(hdr) nuclear@0: rm -f $(DESTDIR)$(PREFIX)/lib/$(lib_so) nuclear@0: [ -n "$(soname)" ] \ nuclear@0: && rm -f $(DESTDIR)$(PREFIX)/lib/$(soname) \ nuclear@0: && rm -f $(DESTDIR)$(PREFIX)/lib/$(devlink) \ nuclear@0: || true