-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
95 lines (82 loc) · 2.35 KB
/
Copy pathMakefile
File metadata and controls
95 lines (82 loc) · 2.35 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
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
83
84
85
86
87
88
89
90
91
92
93
94
95
CC=gcc
CX=g++
CFLAGS = -I . -I CPPBuild -D MINIZ_NO_STDIO --std=gnu11 -O2
CXXFLAGS = -I . -I CPPBuild -D MINIZ_NO_STDIO --std=c++20 -O2
UNAME_S := $(shell uname -s)
ifeq ($(UNAME_S),Darwin)
CFLAGS += -I/opt/homebrew/opt/openssl@3/include
CXXFLAGS += -I/opt/homebrew/opt/openssl@3/include
LIBS += -L"/opt/homebrew/opt/openssl@3/lib" -framework CoreFoundation
endif
LIBS += -lssl -lcrypto
ODIR = build/obj
_OBJ=\
CPPBuild/BuildSetup.o \
CPPBuild/CPPBuild.o \
CPPBuild/CSSTokenizer.o \
CPPBuild/Main.o \
CPPBuild/Precomp.o \
CPPBuild/VSGenerator.o \
CPPBuild/Target.o \
CPPBuild/ConsoleProcess.o \
CPPBuild/VSWorkspace.o \
CPPBuild/MakefileWorkspace.o \
CPPBuild/Package.o \
CPPBuild/PackageManager.o \
CPPBuild/FileTimeCache.o \
CPPBuild/Base64/Base64.o \
CPPBuild/Guid/Guid.o \
CPPBuild/ProcessMutex.o \
CPPBuild/IOData/DataBuffer.o \
CPPBuild/IOData/Directory.o \
CPPBuild/IOData/File.o \
CPPBuild/IOData/FilePath.o \
CPPBuild/IOData/MemoryDevice.o \
CPPBuild/Javascript/quickjs-amalgam.o \
CPPBuild/Javascript/ScriptContext.o \
CPPBuild/Json/JsonValue.o \
CPPBuild/Text/Text.o \
CPPBuild/Text/UTF16.o \
CPPBuild/Text/UTF8Reader.o \
CPPBuild/Msi/MSIGenerator.o \
CPPBuild/Zip/miniz.o \
CPPBuild/Zip/ZipReader.o \
CPPBuild/Zip/ZipWriter.o \
CPPBuild/HttpClient/HttpClient.o \
CPPBuild/HttpClient/HttpConnection.o \
CPPBuild/HttpClient/HttpConnectionImpl.o \
CPPBuild/HttpClient/SocketAddress.o \
CPPBuild/HttpClient/SocketStream.o \
CPPBuild/HttpClient/TcpSocket.o \
CPPBuild/HttpClient/TlsStream.o \
CPPBuild/HttpClient/TlsStreamOpenSSL.o
OBJ=$(patsubst %,$(ODIR)/%,$(_OBJ))
all: build/cppbuild
install: build/cppbuild
cp build/cppbuild /usr/local/bin
build/cppbuild: $(OBJ)
@echo Linking $@
@$(CX) -o $@ $^ $(CXXFLAGS) $(LIBS)
$(ODIR)/%.o: %.c build/createdir
@echo Compiling $@
@$(CC) -c -o $@ $< $(CFLAGS)
$(ODIR)/%.o: %.cpp build/createdir
@echo Compiling $@
@$(CX) -c -o $@ $< $(CXXFLAGS)
build/createdir:
@echo Creating build directory
@mkdir build
@mkdir build/obj
@mkdir build/obj/CPPBuild
@mkdir build/obj/CPPBuild/Base64
@mkdir build/obj/CPPBuild/Guid
@mkdir build/obj/CPPBuild/IOData
@mkdir build/obj/CPPBuild/Javascript
@mkdir build/obj/CPPBuild/Json
@mkdir build/obj/CPPBuild/Text
@mkdir build/obj/CPPBuild/Msi
@mkdir build/obj/CPPBuild/Zip
@mkdir build/obj/CPPBuild/HttpClient
@touch build/createdir
clean:
rm -r build