Skip to content

Commit 33d1f7f

Browse files
committed
Adjust makefile to build individual modules
1 parent 9a7ac3d commit 33d1f7f

File tree

3 files changed

+23
-4
lines changed

3 files changed

+23
-4
lines changed

.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,4 @@
33
/tests/run
44
/tests/run.exe
55
config.mk
6+
/obj/*.o

makefile

+22-4
Original file line numberDiff line numberDiff line change
@@ -5,19 +5,37 @@ prefix := /usr/local
55

66
-include config.mk
77

8+
ALLFBCFLAGS := -m fbfrog -maxerr 1 $(FBFLAGS)
9+
ALLFBLFLAGS := $(FBFLAGS)
10+
11+
SOURCES := $(sort $(wildcard *.bas))
12+
HEADERS := $(wildcard *.bi)
13+
OBJECTS := $(patsubst %.bas,obj/%.o,$(SOURCES))
14+
15+
# We don't want to use any of make's built-in suffixes/rules
16+
.SUFFIXES:
17+
18+
ifndef V
19+
QUIET_FBC = @echo "FBC $<";
20+
QUIET_FBCLINK = @echo "FBCLINK $@";
21+
endif
22+
823
build: $(FBFROG) $(TESTSRUN)
924

10-
$(FBFROG): $(wildcard *.bas *.bi)
11-
$(FBC) *.bas -m fbfrog -maxerr 1 $(FBFLAGS)
25+
$(FBFROG): $(OBJECTS)
26+
$(QUIET_FBCLINK)$(FBC) $(ALLFBLFLAGS) $^ -x $@
27+
28+
$(OBJECTS): obj/%.o: %.bas $(HEADERS)
29+
$(QUIET_FBC)$(FBC) $(ALLFBCFLAGS) $< -c -o $@
1230

1331
$(TESTSRUN): tests/run.bas util-path.bas util-str.bas
14-
$(FBC) $< $(FBFLAGS)
32+
$(QUIET_FBCLINK)$(FBC) $< $(FBFLAGS)
1533

1634
tests: build
1735
$(TESTSRUN)
1836

1937
clean:
20-
rm -f $(FBFROG) $(TESTSRUN)
38+
rm -f $(FBFROG) $(TESTSRUN) obj/*.o
2139

2240
install:
2341
install $(FBFROG) "$(prefix)/bin"

obj/dummy

Whitespace-only changes.

0 commit comments

Comments
 (0)