Skip to content

Commit 9e99cba

Browse files
nwellnhofjgm
authored andcommitted
Makefile: Clean up cmake invocations
Use cmake command to build and install instead of invoking make. Also use -G option consistently. This allows to use other generators like Ninja: make GENERATOR=Ninja Use cmake -B option instead of switching directories.
1 parent ce6e762 commit 9e99cba

File tree

4 files changed

+70
-69
lines changed

4 files changed

+70
-69
lines changed

.editorconfig

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,3 +16,6 @@ indent_size = 2
1616
trim_trailing_whitespace = true
1717
indent_style = tab
1818
indent_size = 8
19+
20+
[Makefile.nmake]
21+
end_of_line = crlf

.gitattributes

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
11
* text=auto eol=lf
2+
Makefile.nmake eol=crlf

Makefile

Lines changed: 37 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -30,57 +30,56 @@ all: cmake_build man/man3/cmark.3
3030
$(CMARK): cmake_build
3131

3232
cmake_build: $(BUILDDIR)
33-
@$(MAKE) -j2 -C $(BUILDDIR)
33+
cmake --build $(BUILDDIR)
3434
@echo "Binaries can be found in $(BUILDDIR)/src"
3535

3636
$(BUILDDIR):
3737
@cmake --version > /dev/null || (echo "You need cmake to build this program: http://www.cmake.org/download/" && exit 1)
38-
mkdir -p $(BUILDDIR); \
39-
cd $(BUILDDIR); \
40-
cmake .. \
41-
-G "$(GENERATOR)" \
42-
-DCMAKE_BUILD_TYPE=$(BUILD_TYPE) \
43-
-DCMAKE_INSTALL_PREFIX=$(INSTALL_PREFIX) \
44-
-DCMAKE_EXPORT_COMPILE_COMMANDS=ON \
45-
-DBUILD_SHARED_LIBS=YES
38+
cmake \
39+
-S . -B $(BUILDDIR) -G "$(GENERATOR)" \
40+
-DCMAKE_BUILD_TYPE=$(BUILD_TYPE) \
41+
-DCMAKE_INSTALL_PREFIX=$(INSTALL_PREFIX) \
42+
-DCMAKE_EXPORT_COMPILE_COMMANDS=ON \
43+
-DBUILD_SHARED_LIBS=YES
4644

4745
install: $(BUILDDIR)
48-
$(MAKE) -C $(BUILDDIR) install
46+
cmake --install $(BUILDDIR)
4947

5048
uninstall: $(BUILDDIR)/install_manifest.txt
5149
xargs rm < $<
5250

5351
debug:
54-
mkdir -p $(BUILDDIR); \
55-
cd $(BUILDDIR); \
56-
cmake .. \
57-
-DCMAKE_BUILD_TYPE=Debug \
58-
-DBUILD_SHARED_LIBS=YES; \
59-
$(MAKE)
52+
cmake \
53+
-S . -B $(BUILDDIR) -G "$(GENERATOR)" \
54+
-DCMAKE_BUILD_TYPE=Debug \
55+
-DBUILD_SHARED_LIBS=YES
56+
cmake --build $(BUILDDIR)
6057

6158
ubsan:
62-
mkdir -p $(BUILDDIR); \
63-
cd $(BUILDDIR); \
64-
cmake .. -DCMAKE_BUILD_TYPE=Ubsan; \
65-
$(MAKE)
59+
cmake \
60+
-S . -B $(BUILDDIR) -G "$(GENERATOR)" \
61+
-DCMAKE_BUILD_TYPE=Ubsan
62+
cmake --build $(BUILDDIR)
6663

6764
asan:
68-
mkdir -p $(BUILDDIR); \
69-
cd $(BUILDDIR); \
70-
cmake .. -DCMAKE_BUILD_TYPE=Asan; \
71-
$(MAKE)
65+
cmake \
66+
-S . -B $(BUILDDIR) -G "$(GENERATOR)" \
67+
-DCMAKE_BUILD_TYPE=Asan
68+
cmake --build $(BUILDDIR)
7269

7370
prof:
74-
mkdir -p $(BUILDDIR); \
75-
cd $(BUILDDIR); \
76-
cmake .. -DCMAKE_BUILD_TYPE=Profile; \
77-
$(MAKE)
71+
cmake \
72+
-S . -B $(BUILDDIR) -G "$(GENERATOR)" \
73+
-DCMAKE_BUILD_TYPE=Profile
74+
cmake --build $(BUILDDIR)
7875

7976
afl:
8077
@[ -n "$(AFL_PATH)" ] || { echo '$$AFL_PATH not set'; false; }
81-
mkdir -p $(BUILDDIR)
82-
cd $(BUILDDIR) && cmake .. -DBUILD_TESTING=NO -DCMAKE_C_COMPILER=$(AFL_PATH)/afl-clang
83-
$(MAKE)
78+
cmake \
79+
-S . -B $(BUILDDIR) -G "$(GENERATOR)" \
80+
-DBUILD_TESTING=NO \
81+
-DCMAKE_C_COMPILER=$(AFL_PATH)/afl-clang
82+
cmake --build $(BUILDDIR)
8483
$(AFL_PATH)/afl-fuzz \
8584
-i fuzz/afl_test_cases \
8685
-o fuzz/afl_results \
@@ -90,7 +89,7 @@ afl:
9089

9190
libFuzzer:
9291
cmake \
93-
-S . -B $(BUILDDIR) \
92+
-S . -B $(BUILDDIR) -G "$(GENERATOR)" \
9493
-DCMAKE_C_COMPILER=clang \
9594
-DCMAKE_CXX_COMPILER=clang++ \
9695
-DCMAKE_BUILD_TYPE=Asan \
@@ -110,10 +109,12 @@ lint: $(BUILDDIR)
110109
exit $$errs
111110

112111
mingw:
113-
mkdir -p $(MINGW_BUILDDIR); \
114-
cd $(MINGW_BUILDDIR); \
115-
cmake .. -DCMAKE_TOOLCHAIN_FILE=../toolchain-mingw32.cmake -DCMAKE_INSTALL_PREFIX=$(MINGW_INSTALLDIR) ;\
116-
$(MAKE) && $(MAKE) install
112+
cmake \
113+
-S . -B $(MINGW_BUILDDIR) -G "$(GENERATOR)" \
114+
-DCMAKE_TOOLCHAIN_FILE=toolchain-mingw32.cmake \
115+
-DCMAKE_INSTALL_PREFIX=$(MINGW_INSTALLDIR)
116+
cmake --build $(MINGW_BUILDDIR)
117+
cmake --install $(MINGW_BUILDDIR)
117118

118119
man/man3/cmark.3: src/cmark.h | $(CMARK)
119120
python3 man/make_man_page.py $< > $@ \

Makefile.nmake

Lines changed: 29 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,29 @@
1-
SRCDIR=src
2-
DATADIR=data
3-
BUILDDIR=build
4-
INSTALLDIR=windows
5-
SPEC=test/spec.txt
6-
PROG=$(BUILDDIR)\src\cmark.exe
7-
GENERATOR=NMake Makefiles
8-
9-
all: $(BUILDDIR)/CMakeFiles
10-
@cd $(BUILDDIR) && $(MAKE) /nologo && cd ..
11-
12-
$(BUILDDIR)/CMakeFiles:
13-
@-mkdir $(BUILDDIR) 2> nul
14-
cd $(BUILDDIR) && \
15-
cmake \
16-
-G "$(GENERATOR)" \
17-
-D CMAKE_BUILD_TYPE=$(BUILD_TYPE) \
18-
-D CMAKE_INSTALL_PREFIX=$(INSTALLDIR) \
19-
.. && \
20-
cd ..
21-
22-
install: all
23-
@cd $(BUILDDIR) && $(MAKE) /nologo install && cd ..
24-
25-
clean:
26-
-rmdir /s /q $(BUILDDIR) $(MINGW_INSTALLDIR) 2> nul
27-
28-
test: $(SPEC) all
29-
@cd $(BUILDDIR) && $(MAKE) /nologo test ARGS="-V" && cd ..
30-
31-
distclean: clean
32-
del /q src\scanners.c 2> nul
33-
del /q spec.md spec.html 2> nul
1+
SRCDIR=src
2+
DATADIR=data
3+
BUILDDIR=build
4+
INSTALLDIR=windows
5+
SPEC=test/spec.txt
6+
PROG=$(BUILDDIR)\src\cmark.exe
7+
GENERATOR=NMake Makefiles
8+
9+
all: $(BUILDDIR)/CMakeFiles
10+
cmake --build $(BUILDDIR)
11+
12+
$(BUILDDIR)/CMakeFiles:
13+
cmake \
14+
-S . -B $(BUILDDIR) -G "$(GENERATOR)" \
15+
-D CMAKE_BUILD_TYPE=$(BUILD_TYPE) \
16+
-D CMAKE_INSTALL_PREFIX=$(INSTALLDIR)
17+
18+
install: all
19+
cmake --install $(BUILDDIR)
20+
21+
clean:
22+
-rmdir /s /q $(BUILDDIR) $(MINGW_INSTALLDIR) 2> nul
23+
24+
test: $(SPEC) all
25+
ctest --test-dir $(BUILDDIR) --output-on-failure
26+
27+
distclean: clean
28+
del /q src\scanners.c 2> nul
29+
del /q spec.md spec.html 2> nul

0 commit comments

Comments
 (0)