54 lines
1.1 KiB
Makefile
54 lines
1.1 KiB
Makefile
#Nana C++ Library
|
|
#
|
|
#Makefile created by sarrow104(sarrow104@gmail.com)
|
|
|
|
GCC = g++
|
|
INCROOT = ../../include
|
|
SRCROOT = ../../source
|
|
EXTRLIB = ../../extrlib
|
|
NANA_INC= $(INCROOT)/nana
|
|
OUTROOT = out
|
|
#CXXFLAGS= -g -std=c++11 -Wall
|
|
CXXFLAGS= -g -fexceptions -std=c++11 -Wall -Wextra -Wunused-variable -Wfatal-errors
|
|
|
|
INCS = -I$(INCROOT) -I/usr/include/freetype2 -I$(EXTRLIB)
|
|
|
|
BIN = libnana.a
|
|
|
|
TARGET = ../bin/$(BIN)
|
|
|
|
.PHONY: all clean install print
|
|
|
|
all: $(TARGET)
|
|
|
|
define walk
|
|
$(wildcard $(1)) $(foreach e, $(wildcard $(1)/*), $(call walk, $(e)))
|
|
endef
|
|
|
|
SRCFILES := $(filter %.cpp,$(patsubst ./%,%,$(filter-out .,$(call walk, $(SRCROOT)))))
|
|
|
|
LINKOBJ = $(patsubst $(SRCROOT)/%.cpp,$(OUTROOT)/objs/%.o,$(SRCFILES))
|
|
|
|
print:
|
|
@echo $(LINKOBJ)
|
|
|
|
$(TARGET): $(LINKOBJ)
|
|
mkdir -p $(dir $@)
|
|
ar rus $@ $?
|
|
ranlib $@
|
|
|
|
$(OUTROOT)/objs/%.o: $(SRCROOT)/%.cpp
|
|
@mkdir -p $(dir $@)
|
|
$(GCC) -o $@ -c $< $(INCS) $(CXXFLAGS)
|
|
|
|
clean:
|
|
rm -f $(LINKOBJ)
|
|
rm -f $(TARGET)
|
|
|
|
install:
|
|
@mkdir -p $(INSTALL_PREFIX)/include
|
|
@mkdir -p $(INSTALL_PREFIX)/bin
|
|
@mkdir -p $(INSTALL_PREFIX)/lib
|
|
cp -rfl $(INCROOT)/* $(INSTALL_PREFIX)/include
|
|
cp -rfl $(TARGET) $(INSTALL_PREFIX)/lib/
|