56 lines
1.1 KiB
Makefile
56 lines
1.1 KiB
Makefile
|
COMPILER=G++
|
||
|
|
||
|
# todo: object files into output path, processing c / c++ files in the same time (?), nested directories for source files (?)
|
||
|
C = c
|
||
|
OUTPUT_PATH = out/production/displayboard/
|
||
|
SOURCE_PATH = src/
|
||
|
EXE = $(OUTPUT_PATH)displayboard
|
||
|
|
||
|
ifeq ($(COMPILER), G++)
|
||
|
ifeq ($(OS),Windows_NT)
|
||
|
OBJ = obj
|
||
|
else
|
||
|
OBJ = o
|
||
|
endif
|
||
|
COPT = -O2
|
||
|
CCMD = g++
|
||
|
OBJFLAG = -o
|
||
|
EXEFLAG = -o
|
||
|
# INCLUDES = -I../.includes
|
||
|
INCLUDES =
|
||
|
# LIBS = -lgc
|
||
|
LIBS =
|
||
|
# LIBPATH = -L../gc/.libs
|
||
|
LIBPATH =
|
||
|
CPPFLAGS = $(COPT) -g $(INCLUDES)
|
||
|
LDFLAGS = $(LIBPATH) -g $(LIBS)
|
||
|
DEP = dep
|
||
|
else
|
||
|
OBJ = obj
|
||
|
COPT = /O2
|
||
|
CCMD = cl
|
||
|
OBJFLAG = /Fo
|
||
|
EXEFLAG = /Fe
|
||
|
# INCLUDES = /I..\\.includes
|
||
|
INCLUDES =
|
||
|
# LIBS = ..\\.libs\\libgc.lib
|
||
|
LIBS =
|
||
|
CPPFLAGS = $(COPT) /DEBUG $(INCLUDES)
|
||
|
LDFLAGS = /DEBUG
|
||
|
endif
|
||
|
|
||
|
OBJS := $(patsubst %.$(C),%.$(OBJ),$(wildcard $(SOURCE_PATH)*.$(C)))
|
||
|
|
||
|
%.$(OBJ):%.$(C)
|
||
|
@echo Compiling $(basename $<)...
|
||
|
$(CCMD) -c $(CPPFLAGS) $(CXXFLAGS) $< $(OBJFLAG)$@
|
||
|
|
||
|
all: $(OBJS)
|
||
|
@echo Linking...
|
||
|
$(CCMD) $(LDFLAGS) $^ $(LIBS) $(EXEFLAG) $(EXE)
|
||
|
|
||
|
clean:
|
||
|
rm -rf $(SOURCE_PATH)*.$(OBJ) $(EXE)
|
||
|
|
||
|
rebuild: clean all
|
||
|
#rebuild is not entirely correct
|