-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
52 lines (37 loc) · 1.11 KB
/
Makefile
File metadata and controls
52 lines (37 loc) · 1.11 KB
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
41
42
43
44
45
46
47
48
49
50
51
52
ARCH := $(shell uname -m)
DEST ?= build
TARGET_ARCH ?= $(ARCH)
CROSS_ARCH_POSIX ?= x86_64 i686 aarch64 armv7
CROSS_ARCH_WIN32 ?= win64 win32
CROSS_ARCH_ALL ?= $(CROSS_ARCH_POSIX) $(CROSS_ARCH_WIN32)
OBJECT := $(DEST)/udpbd-server.$(TARGET_ARCH)
EXISTING_OBJECTS := $(wildcard $(sort \
$(OBJECT) \
$(foreach x,$(CROSS_ARCH_POSIX),$(DEST)/udpbd-server.$(x)) \
$(foreach x,$(CROSS_ARCH_WIN32),$(DEST)/udpbd-server.$(x).exe) \
))
CXXFLAGS ?= -Os -s
ifeq ($(TARGET_ARCH),win64)
CXXFLAGS := $(CXXFLAGS) -mconsole -static -static-libgcc -static-libstdc++
LDLIBS := $(LDLIBS) -lmingw32 -lws2_32
OBJECT := $(OBJECT).exe
else ifeq ($(TARGET_ARCH),win32)
CXXFLAGS := $(CXXFLAGS) -mconsole -static -static-libgcc -static-libstdc++
LDLIBS := $(LDLIBS) -lmingw32 -lws2_32
OBJECT := $(OBJECT).exe
endif
MKDIR_P ?= mkdir -p
CHMOD_X ?= chmod +x
STRINGS ?= strings
.PHONY: all build dist clean distclean
all: build build.extras
build: $(OBJECT)
clean:
$(RM) $(EXISTING_OBJECTS)
$(OBJECT): main.cpp
$(info $(VARS))
$(MKDIR_P) $(@D)
$(CXX) $(CXXFLAGS) -v -o $@ $^ $(LDLIBS)
$(CHMOD_X) $@
install: $(OBJECT)
cp $(BIN) $(PS2DEV)/bin