.NOTPARALLEL: prefix ?= /usr/local # remove trailing / override prefix := $(prefix:%/=%) DIRS := src simple test BUILDDIRS := $(DIRS:%=build-%) CLEANDIRS := $(DIRS:%=clean-%) FORMATDIRS := $(DIRS:%=format-%) TESTDIRS := $(DIRS:%=test-%) ################################### # Define PCFILE content based on prefix define PCFILE prefix=${prefix} Name: libtomlc17 URL: https://github.com/cktan/tomlc17/ Description: TOML C library in c17. Version: v1.0 Libs: -L$${prefix}/lib -ltomlc17 Cflags: -I$${prefix}/include endef # Make it available to subshells export PCFILE ################################# all: $(BUILDDIRS) $(BUILDDIRS): $(MAKE) -C $(@:build-%=%) install: all install -d $(DESTDIR)${prefix}/include install -d $(DESTDIR)${prefix}/lib install -d $(DESTDIR)${prefix}/lib/pkgconfig install -m 0644 src/tomlc17.h $(DESTDIR)${prefix}/include/ install -m 0644 src/tomlcpp.hpp $(DESTDIR)${prefix}/include/ install -m 0644 src/libtomlc17.a $(DESTDIR)${prefix}/lib/ @echo "$$PCFILE" >> $(DESTDIR)${prefix}/lib/pkgconfig/libtomlc17.pc test: $(TESTDIRS) format: $(FORMATDIRS) clean: $(CLEANDIRS) $(TESTDIRS): $(MAKE) -C $(@:test-%=%) test $(CLEANDIRS): $(MAKE) -C $(@:clean-%=%) clean $(FORMATDIRS): $(MAKE) -C $(@:format-%=%) format .PHONY: $(DIRS) $(BUILDDIRS) $(TESTDIRS) $(CLEANDIRS) $(FORMATDIRS) .PHONY: all install test format clean