1# Created by: lightside <lightside@gmx.com>
2# This file released into the public domain
3
4WX_CONFIG?=	wx-config
5WX_CXXFLAGS=	`$(WX_CONFIG) --cxxflags`
6WX_LIBS=	`$(WX_CONFIG) --libs aui adv core xml net`
7PACKAGE_VERSION?=	__DATE__
8CXX?=	c++
9CXXFLAGS+=	-DPACKAGE_VERSION=$(PACKAGE_VERSION) -std=c++17 $(WX_CXXFLAGS) -I ../lobster/include -I ../lobster/src
10LDFLAGS+=	$(WX_LIBS)
11
12ARCH=	$(firstword $(shell uname -m))
13SYS=	$(firstword $(shell uname -s))
14DISTFILE?=	$(DISTNAME)$(DISTEXT)
15DISTNAME?=	$(APPNAME)_$(SYS)_$(ARCH)
16DISTEXT?=	.tar.gz
17DIST_CMD?=	tar
18DIST_ARGS?=	-caf
19
20APPNAME=	treesheets
21SRCS=	main.cpp \
22        lobster_impl.cpp \
23        ../lobster/external/flatbuffers/src/idl_gen_text.cpp \
24        ../lobster/external/flatbuffers/src/idl_parser.cpp \
25        ../lobster/external/flatbuffers/src/util.cpp \
26        ../lobster/src/builtins.cpp \
27        ../lobster/src/compiler.cpp \
28        ../lobster/src/disasm.cpp \
29        ../lobster/src/file.cpp \
30        ../lobster/src/lobsterreader.cpp \
31        ../lobster/src/platform.cpp \
32        ../lobster/src/vm.cpp \
33        ../lobster/src/vmdata.cpp \
34        ../lobster/src/vmlog.cpp
35OBJS=	$(SRCS:.cpp=.o)
36
37all: $(SRCS) $(APPNAME)
38
39release: CXXFLAGS+= -O3
40release: install clean
41
42debug: CXXFLAGS+= -g
43debug: install clean
44
45$(APPNAME): $(OBJS)
46	$(CXX) $(OBJS) $(LDFLAGS) -o $@
47
48install: all
49	cp -f $(APPNAME) ../TS
50
51deinstall:
52	rm -f ../TS/$(APPNAME)
53
54clean:
55	rm -f $(APPNAME) *.o
56
57dist-release: release dist
58
59dist-debug: debug dist
60
61dist-all: install clean dist
62
63dist:
64	cd .. && $(DIST_CMD) $(DIST_ARGS) $(DISTFILE) TS
65
66dist-clean:
67	cd .. && rm -f $(DISTFILE)
68
69.PHONY: all debug release clean install deinstall dist dist-all dist-debug \
70	dist-release dist-clean
71