59 lines
1.4 KiB
Makefile
59 lines
1.4 KiB
Makefile
# assembler
|
|
AS = /home/selim/blob/fasm/fasm
|
|
ASFLAGS =
|
|
#LINKER = ld
|
|
#ASLDFLAGS = -lc -e main -dynamic-linker /lib64/ld-linux-x86-64.so.2
|
|
|
|
# Target platform
|
|
ARCH = x86_64
|
|
OS = linux
|
|
|
|
# C++ compier
|
|
CXX = g++
|
|
CXXFLAGS = -MMD -c -g -Og -Wall -Werror -std=c++11 -Iinclude -Isrc/asm/include
|
|
LDFLAGS = -lgtest
|
|
|
|
# Archiver
|
|
AR = ar
|
|
|
|
BINDIR = bin
|
|
LIBDIR = lib
|
|
OBJDIR = obj
|
|
|
|
CPPUTIL_CXX_SOURCES = $(wildcard src/*.cpp)
|
|
CPPUTIL_ASM_SOURCES = $(wildcard src/asm/$(OS)/$(ARCH)/*.s)
|
|
CPPUTIL_OBJECTS = $(CPPUTIL_CXX_SOURCES:%.cpp=$(OBJDIR)/%.o) $(CPPUTIL_ASM_SOURCES:%.s=$(OBJDIR)/%.o)
|
|
CPPUTIL_DEPS = $(CPPUTIL_CXX_SOURCES:%.cpp=$(OBJDIR)/%.d)
|
|
|
|
TEST_SOURCES = $(wildcard test/*.cpp)
|
|
TEST_OBJECTS = $(TEST_SOURCES:%.cpp=$(OBJDIR)/%.o)
|
|
TEST_DEPS = $(TEST_SOURCES:%.cpp=$(OBJDIR)/%.d)
|
|
|
|
all: $(BINDIR)/cpputil_test $(LIBDIR)/libcpputil.a
|
|
|
|
$(BINDIR)/cpputil_test: bindir $(TEST_OBJECTS) lib/libcpputil.a
|
|
$(CXX) $(LDFLAGS) -o $(BINDIR)/cpputil_test $(TEST_OBJECTS) $(LIBDIR)/libcpputil.a
|
|
|
|
$(LIBDIR)/libcpputil.a: libdir $(CPPUTIL_OBJECTS)
|
|
$(AR) rcs $(LIBDIR)/libcpputil.a $(CPPUTIL_OBJECTS)
|
|
|
|
-include $(CPPUTIL_DEPS) $(TEST_DEPS)
|
|
|
|
$(OBJDIR)/%.o: %.cpp
|
|
$(CXX) $(CXXFLAGS) $< -o $@
|
|
|
|
$(OBJDIR)/%.o: %.s
|
|
$(AS) $(ASFLAGS) $< $@
|
|
|
|
bindir: objdir
|
|
mkdir -p $(BINDIR)
|
|
|
|
libdir: objdir
|
|
mkdir -p $(LIBDIR)
|
|
|
|
objdir:
|
|
mkdir -p $(dir $(CPPUTIL_OBJECTS) $(TEST_OBJECTS))
|
|
|
|
clean:
|
|
rm -rf $(LIBDIR) $(BINDIR) $(OBJDIR)
|