54 lines
		
	
	
		
			969 B
		
	
	
	
		
			Makefile
		
	
	
	
	
	
			
		
		
	
	
			54 lines
		
	
	
		
			969 B
		
	
	
	
		
			Makefile
		
	
	
	
	
	
| prefix ?= /usr/local
 | |
| HFILES = toml.h
 | |
| CFILES = toml.c
 | |
| OBJ = $(CFILES:.c=.o)
 | |
| EXEC = toml_json toml_cat toml_sample
 | |
| PCFILE = libtoml.pc
 | |
| 
 | |
| CFLAGS = -std=c99 -Wall -Wextra -fpic
 | |
| LIB_VERSION = 1.0
 | |
| LIB = libtoml.a
 | |
| LIB_SHARED = libtoml.so.$(LIB_VERSION)
 | |
| 
 | |
| # to compile for debug: make DEBUG=1
 | |
| # to compile for no debug: make
 | |
| ifdef DEBUG
 | |
|     CFLAGS += -O0 -g
 | |
| else
 | |
|     CFLAGS += -O2 -DNDEBUG
 | |
| endif
 | |
| 
 | |
| 
 | |
| all: $(LIB) $(LIB_SHARED) $(EXEC)
 | |
| 
 | |
| *.o: $(HFILES)
 | |
| 
 | |
| libtoml.a: toml.o
 | |
| 	ar -rcs $@ $^
 | |
| 
 | |
| libtoml.so.$(LIB_VERSION): toml.o
 | |
| 	$(CC) -shared -o $@ $^
 | |
| 
 | |
| $(EXEC): $(LIB)
 | |
| 
 | |
| install: all
 | |
| 	install -d ${prefix}/include ${prefix}/lib
 | |
| 	install toml.h ${prefix}/include
 | |
| 	install $(LIB) ${prefix}/lib
 | |
| 	install $(LIB_SHARED) ${prefix}/lib
 | |
| ifeq "$(prefix)" "/usr/local"
 | |
| ifneq ("$(wildcard $(PCFILE))","")
 | |
| 	install $(PCFILE) /usr/local/lib/pkgconfig
 | |
| endif
 | |
| endif
 | |
| 
 | |
| 
 | |
| clean:
 | |
| 	rm -f *.o $(EXEC) $(LIB) $(LIB_SHARED)
 | |
| 
 | |
| 
 | |
| format:
 | |
| 	clang-format -i $(shell find . -name '*.[ch]')
 | |
| 
 | |
| .PHONY: all clean install format
 |