Skip to content

Commit 37f1871

Browse files
authored
Make minor improvements to Makefiles (cucumber#393)
* [Makefile] refactor with the builtin variable MAKE as stated in https://www.gnu.org/software/make/manual/html_node/MAKE-Variable.html Recursive make commands should always use the variable MAKE, not the explicit command name ‘make’ * [Makefile] refactor without cd the use of the option -C (--directory=) is idiomatic * [c/Makefile] refactor without cd the use of the option -C (--directory=) is idiomatic
1 parent 28ef68b commit 37f1871

File tree

2 files changed

+11
-11
lines changed

2 files changed

+11
-11
lines changed

Makefile

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,40 +9,40 @@ acceptance: $(patsubst %,acceptance-%,$(languages)) ## Build acceptance test dir
99
.PHONY: acceptance
1010

1111
acceptance-%: %
12-
cd $< && make acceptance
12+
$(MAKE) --directory=$< acceptance
1313
.PHONY: acceptance-%
1414

1515
clean: $(patsubst %,clean-%,$(languages)) ## Remove all build artifacts and files generated by the acceptance tests for all supported languages
1616
.PHONY: clean
1717

1818
clean-%: %
19-
cd $< && make clean
19+
$(MAKE) --directory=$< clean
2020
.PHONY: clean-%
2121

2222
generate: $(patsubst %,generate-%,$(languages)) ## Generate parsers for all supported languages
2323
.PHONY: generate
2424

2525
generate-%: %
26-
cd $< && make generate
26+
$(MAKE) --directory=$< generate
2727
.PHONY: generate-%
2828

2929
clean-generate: $(patsubst %,clean-generate-%,$(languages)) ## Clean generated parsers for all supported languages
3030
.PHONY: clean-generate
3131

3232
clean-generate-%: %
33-
cd $< && make clean-generate
33+
$(MAKE) --directory=$< clean-generate
3434
.PHONY: clean-generate-%
3535

3636
copy-gherkin-languages: $(patsubst %,copy-gherkin-languages-%,$(languages)) ## Copy gherkin-languages.json to all supported languages
3737
.PHONY: copy-gherkin-languages
3838

3939
copy-gherkin-languages-%: %
40-
cd $< && make copy-gherkin-languages
40+
$(MAKE) --directory=$< copy-gherkin-languages
4141
.PHONY: generate-%
4242

4343
clean-gherkin-languages: $(patsubst %,clean-gherkin-languages-%,$(languages)) ## Clean gherkin-languages.json
4444
.PHONY: clean-gherkin-languages
4545

4646
clean-gherkin-languages-%: %
47-
cd $< && make clean-gherkin-languages
47+
$(MAKE) --directory=$< clean-gherkin-languages
4848
.PHONY: clean-gherkin-languages-%

c/Makefile

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -47,24 +47,24 @@ clean-gherkin-languages: ## Remove gherkin-languages.json and any derived files
4747

4848
.built: generate $(SRC_FILES) src/Makefile
4949
$(CC) --version
50-
cd src; $(MAKE)
50+
$(MAKE) --directory=src
5151
touch $@
5252

5353
clean:
5454
rm -rf .compared .built .run acceptance
55-
cd src; $(MAKE) $@
55+
$(MAKE) --directory=src $@
5656
.PHONY: clean
5757

5858
cli: ./include/rule_type.h src/parser.c src/dialect.c $(SRC_FILES) src/Makefile
59-
cd src; $(MAKE) CC=$(CC) $@
59+
$(MAKE) --directory=src CC=$(CC) $@
6060
.PHONY: libs
6161

6262
libs: ./include/rule_type.h src/parser.c src/dialect.c $(SRC_FILES) src/Makefile
63-
cd src; $(MAKE) CC=$(CC) $@
63+
$(MAKE) --directory=src CC=$(CC) $@
6464
.PHONY: libs
6565

6666
libs_so: ./include/rule_type.h src/parser.c src/dialect.c $(SRC_FILES) src/Makefile
67-
cd src; $(MAKE) CC=$(CC) $@
67+
$(MAKE) --directory=src CC=$(CC) $@
6868
.PHONY: libs_so
6969

7070
.run: cli $(GHERKIN) $(GOOD_FEATURE_FILES)

0 commit comments

Comments
 (0)