dvander@28: #vim: set ft=make: dvander@28: dvander@28: CXX=@CXX@ dvander@28: CXXFLAGS=@CXXFLAGS@ dvander@28: srcdir=@srcdir@ dvander@28: VPATH=${srcdir} dvander@28: TOOLS=${srcdir}/../build dvander@28: CXXVENDOR=@CXXVENDOR@ dvander@28: PLATFORM="@PLATFORM@" dvander@28: NULL = dvander@28: dvander@47: INCLUDES += dvander@28: CXXFLAGS += $(INCLUDES) dvander@47: BASECXXFLAGS = -Wall -Werror -Wno-null-arithmetic -Wno-invalid-offsetof -g3 -O0 dvander@28: dvander@28: CPPSRCS = \ dvander@28: Array.cpp \ dvander@28: BytecodeCompiler.cpp \ dvander@28: BytecodeEmitter.cpp \ dvander@28: CompileContext.cpp \ dvander@28: Exception.cpp \ dvander@28: FixedArray.cpp \ dvander@28: Functions.cpp \ dvander@28: Heap.cpp \ dvander@28: Interpreter.cpp \ dvander@28: Modules.cpp \ dvander@28: NameBinding.cpp \ dvander@28: Parser.cpp \ dvander@28: Opcodes.cpp \ dvander@28: PoolAllocator.cpp \ dvander@28: Reference.cpp \ dvander@47: RootScopes.cpp \ dvander@28: Scanner.cpp \ dvander@28: Scopes.cpp \ dvander@28: SemanticAnalysis.cpp \ dvander@28: Spaces.cpp \ dvander@28: Stack.cpp \ dvander@28: TypeManager.cpp \ dvander@28: Types.cpp \ dvander@28: Zone.cpp \ dvander@28: main.cpp \ dvander@28: $(NULL) dvander@28: dvander@28: ifeq ("darwin", $(PLATFORM)) dvander@28: CPPSRCS += \ dvander@28: Platform-Posix.cpp \ dvander@28: $(NULL) dvander@28: endif dvander@28: ifeq ("linux", $(PLATFORM)) dvander@28: CPPSRCS += \ dvander@28: Platform-Posix.cpp \ dvander@28: $(NULL) dvander@28: endif dvander@28: dvander@28: default: all dvander@28: dvander@28: OBJECTS := $(CPPSRCS:%.cpp=%.o) dvander@28: dvander@28: ifeq ($(CXXVENDOR), microsoft) dvander@28: dvander@28: CXXFLAGS += /DWIN32 /D_WINDOWS dvander@28: dvander@28: %.o: %.cpp dvander@28: $(CXX) $(CXXFLAGS) /Fo$@ /c /TP /nologo $< dvander@28: else dvander@28: dvander@28: %.o: %.cpp dvander@28: $(CXX) $(BASECXXFLAGS) $(CXXFLAGS) -c -o $@ -Wp,-MD,.deps/$(patsubst %.o,%.d,$@) $< dvander@28: dvander@28: endif dvander@28: dvander@28: #$(CXX) $(BASECXXFLAGS) $(CXXFLAGS) -c -o $@ -Wp,-MD,.deps/$(basename $(@F)).pp $< dvander@28: dvander@28: DEPEND_FILES := $(strip $(wildcard .deps/*.d)) dvander@28: dvander@28: ifneq (,$(DEPEND_FILES)) dvander@28: DEPEND_RESULTS = $(shell $(TOOLS)/mddepend.pl - $(DEPEND_FILES)) dvander@28: $(eval $(DEPEND_RESULTS)) dvander@28: endif dvander@28: dvander@28: all: foobar dvander@28: dvander@28: foobar: libfoobar.a main.o dvander@28: $(CXX) main.o libfoobar.a -lpthread -o foobar dvander@28: dvander@28: libfoobar.a: $(OBJECTS) dvander@28: $(AR) -crs libfoobar.a $(OBJECTS) dvander@28: dvander@28: FORCE: dvander@28: dvander@28: clean: dvander@28: rm -f .deps/*.d dvander@28: rm -f *.o dvander@28: rm -f libfoobar.a dvander@28: rm -f foobar dvander@28: