aboutsummaryrefslogtreecommitdiff
path: root/Makefile.deps
blob: ca3d22d4eef82e12e87ea13cbe7ceef2cfcddb4b (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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
DPP_ROOT = .
include Makefile.inc

all: deps

%.o: %.c
	$(Q)$(CC) -std=c99 $(CFLAGS) -c $< -o $@
	@echo 'CC  $@'

%.opp: %.cpp
	$(Q)$(CXX) $(CFLAGS) $(CXXFLAGS) $(EASTL_CXXFLAGS) -c $< -o $@
	@echo 'CXX $@'

deps-print-local-notice: $(CC)
ifeq ($(CC),$(LOCAL_MINGW64_CC))
	@echo
	@echo "-- [Build Config]"
	@echo "-- CC : $(realpath $(CC))"
	@echo "-- CXX: $(realpath $(CXX))"
	@echo "-- DDK: $(realpath $(DDK_INCLUDE_DIR))"
	@echo
endif

$(LOCAL_MINGW64_BUILD_SCRIPT):
ifeq ($(CC),$(LOCAL_MINGW64_CC))
	@echo
	@echo "------------------------------------------------------------------------------"
	@echo "-- ./mingw-w64-build/mingw-w64-build does not exist, clonging git submodule --"
	@echo "------------------------------------------------------------------------------"
	@echo
	git submodule update --init mingw-w64-build
endif

$(LOCAL_MINGW64_CC): $(LOCAL_MINGW64_BUILD_SCRIPT)
ifeq ($(CC),$(LOCAL_MINGW64_CC))
	@echo
	@echo "----------------------------------------------------------------------------------------"
	@echo "-- ./x86_64-w64-mingw32/bin/x86_64-w64-mingw32-gcc does not exist, building toolchain --"
	@echo "----------------------------------------------------------------------------------------"
	@echo
	env -i ./mingw-w64-build/mingw-w64-build x86_64
endif

deps-build: \
	$(LOCAL_MINGW64_BUILD_SCRIPT) \
	$(LOCAL_MINGW64_CC) \
	$(EASTL_STATIC_LIB) \
	$(DRIVER_ADDITIONAL_OBJS) \
	$(DRIVER_CRT) \
	$(DRIVER_CRTPLUSPLUS) \
	$(USER_CRT) \
	$(SIGNTOOL_PREFIX)

deps: deps-print-local-notice deps-build

$(EASTL_STATIC_LIB): $(EASTL_DEPS)
	mkdir -p EASTL-build
	cd EASTL-build && \
		$(CMAKE) ../EASTL \
			-DCMAKE_CXX_COMPILER="$(realpath $(CXX))" \
			-DCMAKE_SYSTEM_NAME="Windows" \
			-DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=ONLY \
			-DCMAKE_CXX_FLAGS='$(CFLAGS) $(CXXFLAGS) $(EASTL_CXXFLAGS)' && \
		$(MAKE) $(CMAKE_Q)

$(SIGNTOOL_PREFIX)-code.p12:
	./create_codesign_ca.sh $(SIGNTOOL_PREFIX)

$(SIGNTOOL_PREFIX): $(SIGNTOOL_PREFIX)-code.p12

distclean: clean
	rm -f $(SIGNTOOL_PREFIX)-ca-* $(SIGNTOOL_PREFIX)-code*
	rm -rf $(LOCAL_MINGW64_BUILD_DIR)
	git submodule deinit --all

clean:
	rm -f $(DRIVER_CRT) $(DRIVER_CRTPLUSPLUS) $(USER_CRT) $(EASTL_STATIC_LIB)
	rm -f $(DRIVER_ADDITIONAL_OBJS)
	rm -rf EASTL-build

.PHONY: all deps-print-local-notice deps-build deps distclean clean
.DEFAULT_GOAL := all