summaryrefslogtreecommitdiff
path: root/Makefile.MGW32
blob: 8051a0740dbffd8de15eb014e876c6b0d1e106d4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
CXX = x86_64-w64-mingw32-c++
AR = x86_64-w64-mingw32-ar
CXX_LDD = x86_64-w64-mingw32-ld
LDD = x86_64-w64-mingw32-ld

WXINCLUDES = -Iwxmsw/include/x86_64-w64-mingw32-msw-unicode-3.2 -Iwxmsw/include
WXCXXFLAGS = -D_FILE_OFFSET_BITS=64 -DWXUSINGDLL -D__WXMSW__ -pthread $(WXINCLUDES)

CXXFLAGS = -static -std=c++11 -lwinpthread -I. -I/usr/lib/gcc/x86_64-w64-mingw32/12-win32/include $(WXCXXFLAGS)

WIN32_DLL_DIR = win32_dlls

MGWLIBS = $(wildcard $(WIN32_DLL_DIR)/libgcc*.dll) $(wildcard $(WIN32_DLL_DIR)/libstd*.dll)

WXLIBS = $(wildcard $(WIN32_DLL_DIR)/wx*.dll)
WXLDFLAGS = $(addprefix -l, $(basename $(WXLIBS)))

SSLLIBS = $(wildcard $(WIN32_DLL_DIR)/libcrypto*.dll)
SSLLDFLAGS = $(addprefix -l, $(basename $(SSLLIBS)))

LDFLAGS = -L. -Wl,-Bdynamic $(WXLDFLAGS) $(SSLLDFLAGS) -Wl,-subsystem,windows -mwindows

OUT = totpgen
OBJS = wxgui.o crypto.o

all: $(OUT)

$(OUT): $(OBJS)
	$(CXX) $(OBJS) -o $(OUT) $(LDFLAGS)
	mkdir -p release && cp -r $(OUT).exe $(MGWLIBS) $(WXLIBS) $(SSLLIBS) release

crypto.o: crypto.cpp
	$(CXX) $(CXXFLAGS) -c crypto.cpp -o crypto.o

wxgui.o: wxgui.cpp
	$(CXX) $(CXXFLAGS) -c wxgui.cpp -o wxgui.o

.PHONY: clean
clean:
	rm -f *.o *.a */*.o */*.a $(OUT).exe release/*