brzeszczot

brzeszczot.git
git clone git://git.lenczewski.org/brzeszczot.git
Log | Files | Refs

config.mk (991B)


      1 ## toolchain
      2 CC		?= cc
      3 CXX		?= c++
      4 AR		?= ar
      5 RANLIB		?= ranlib
      6 
      7 STRIP		?= strip
      8 
      9 TAR		?= tar
     10 ZIP		?= gzip
     11 
     12 ## project build directories
     13 BIN		:= bin
     14 OBJ		:= obj
     15 LIB		:= lib
     16 TST		:= $(BIN)/tests
     17 
     18 $(BIN):
     19 	@mkdir -p $(BIN)
     20 
     21 $(OBJ):
     22 	@mkdir -p $(OBJ)
     23 
     24 $(LIB):
     25 	@mkdir -p $(LIB)
     26 
     27 $(TST): $(BIN)
     28 	@mkdir -p $(TST)
     29 
     30 ## project-wide includes
     31 INC		:= include
     32 
     33 ## append project-wide toolchain flags
     34 CFLAGS		:= $(CFLAGS) -std=c11 -Wall -Wextra -Wpedantic -Werror
     35 CPPFLAGS	:= $(CPPFLAGS) -I$(INC) -D_XOPEN_SOURCE=700
     36 LDFLAGS		:= $(LDFLAGS) -L$(LIB)
     37 
     38 REGIME		?= DEBUG
     39 
     40 DEBUG_CFLAGS	:= $(DEBUG_CFLAGS) -Og -ggdb
     41 DEBUG_CPPFLAGS	:= $(DEBUG_CPPFLAGS) -UNDEBUG
     42 DEBUG_LDFLAGS	:= $(DEBUG_LDFLAGS)
     43 
     44 RELEASE_CFLAGS	:= $(RELEASE_CFLAGS) -O3 -flto
     45 RELEASE_CPPFLAGS:= $(RELEASE_CPPFLAGS) -DNDEBUG
     46 RELEASE_LDFLAGS	:= $(RELEASE_LDFLAGS) -flto
     47 
     48 ## append regime-specific toolchain flags
     49 CFLAGS		:= $(CFLAGS) $($(REGIME)_CFLAGS)
     50 CPPFLAGS	:= $(CPPFLAGS) $($(REGIME)_CPPFLAGS)
     51 LDFLAGS		:= $(LDFLAGS) $($(REGIME)_LDFLAGS)