uox3/source/Makefile
2023-01-09 11:37:12 +10:00

59 lines
1.2 KiB
Makefile

BASE := ..
SPIDER := $(BASE)/spidermonkey
ZLIB := $(BASE)/zlib
PLATFORM := $(shell uname)
ifeq ($(PLATFORM),FreeBSD)
CXX := clang++
else
CXX := g++
GCCVER8 := $(shell expr `gcc -dumpversion | cut -f1 -d.` \<= 8)
endif
CXXFLAGS := -std=c++17 -O2 -pthread -Wno-shift-negative-value -Wall -Wextra -Wno-attributes
LDFLAGS := -L$(SPIDER) -ljs32 -L$(ZLIB) -lz
TARGET := uox3
INCLUDE := -I$(SPIDER) -I. -I$(ZLIB)
DEPDIR := ./.deps
DEPFLAGS = -MT $@ -MMD -MP -MF $(DEPDIR)/$*.d
POSTCOMPILE = mv -f $(DEPDIR)/$*.Td $(DEPDIR)/$*.d && touch $@
BUILD := ./build
SRC := $(wildcard *.cpp)
OBJECTS := $(SRC:%.cpp=$(BUILD)/%.o)
ifeq "$(GCCVER8)" "1"
LDFLAGS += -lstdc++fs
endif
#COMPILE := $(CXX) $(DEPFLAGS) $(CXXFLAGS) $(INCLUDE) -c
all: build $(TARGET)
$(BUILD)/%.o: %.cpp
$(BUILD)/%.o: %.cpp $(DEPDIR)/%.d | $(DEPDIR)
@mkdir -p $(@D)
$(CXX) $(DEPFLAGS) $(CXXFLAGS) $(INCLUDE) -c $< -o $@
$(DEPDIR): ; @mkdir -p $@
DEPFILES := $(SRC:%.cpp=$(DEPDIR)/%.d)
$(DEPFILES):
include $(wildcard $(DEPFILES))
$(TARGET): $(OBJECTS)
$(CXX) $(CXXFLAGS) -o $(TARGET) $^ $(LDFLAGS)
.PHONY: all build clean
build:
@mkdir -p $(BUILD)
.PHONY clean:
-@rm -rf $(BUILD)
-@rm -rf $(DEPDIR)
-@rm $(TARGET)