add config support
This commit is contained in:
@@ -0,0 +1,61 @@
|
||||
.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
|
||||
Reference in New Issue
Block a user