kingletbv / carburetta

The Carburetta scanner & parser generator
https://carburetta.com/
Apache License 2.0
14 stars 1 forks source link

improved Makefile for Linux #3

Closed bstarynk closed 5 months ago

bstarynk commented 5 months ago

the below patch (obtained by GNU diff) should improve compilation of Carburetta (its git b5f7d45e7325e) on Linux Debian:

 diff --git a/Makefile b/Makefile
index e3545ad..b1d937f 100644
--- a/Makefile
+++ b/Makefile
@@ -1,6 +1,8 @@
 CC=gcc
+CXX=g++
 #CC=clang
-CXXFLAGS=-Wall
+CFLAGS=-Wall -O -g
+CXXFLAGS=-Wall -O -g

 OUT = build/linux
 SRC = src
@@ -25,10 +27,10 @@ all: $(OUT)/carburetta $(OUT)/calc $(OUT)/template_scan $(OUT)/inireader $(OUT)/

 $(INTERMEDIATE)/%.o: $(SRC)/%.c
    @mkdir -p $(@D)
-   $(CC) -c -o $@ $<
+   $(CC) $(CFLAGS) -c -o $@ $<

 $(OUT)/carburetta: $(OBJECTS)
-   $(CC) -o $(OUT)/carburetta $(OBJECTS)
+   $(CC) $(CFLAGS)  -o $(OUT)/carburetta $(OBJECTS)

 $(INTERMEDIATE)/calc/calc.c: $(OUT)/carburetta examples/calc/calc.cbrt
    mkdir -p $(@D)
@@ -37,19 +39,19 @@ $(INTERMEDIATE)/calc/calc.c: $(OUT)/carburetta examples/calc/calc.cbrt
 $(INTERMEDIATE)/inireader/iniparser.c: $(OUT)/carburetta examples/inireader/iniparser.cbrt
    mkdir -p $(@D)
    $(OUT)/carburetta examples/inireader/iniparser.cbrt --c $(INTERMEDIATE)/inireader/iniparser.c --h
-    
+
 $(INTERMEDIATE)/template_scan/template_scan.c: $(OUT)/carburetta examples/template_scan/template_scan.cbrt
    mkdir -p $(@D)
    $(OUT)/carburetta examples/template_scan/template_scan.cbrt --c $(INTERMEDIATE)/template_scan/template_scan.c

 $(OUT)/calc: $(INTERMEDIATE)/calc/calc.c
-   $(CC) -o $(OUT)/calc $(INTERMEDIATE)/calc/calc.c
+   $(CC) $(CFLAGS)  -o $(OUT)/calc $(INTERMEDIATE)/calc/calc.c

 $(OUT)/inireader: $(INTERMEDIATE)/inireader/iniparser.c examples/inireader/main.c
-   $(CC) -o $(OUT)/inireader -I$(INTERMEDIATE)/inireader -Iexamples/inireader $(INTERMEDIATE)/inireader/iniparser.c examples/inireader/main.c
+   $(CC) $(CFLAGS)  -o $(OUT)/inireader -I$(INTERMEDIATE)/inireader -Iexamples/inireader $(INTERMEDIATE)/inireader/iniparser.c examples/inireader/main.c

 $(OUT)/template_scan: $(INTERMEDIATE)/template_scan/template_scan.c
-   $(CC) -o $(OUT)/template_scan $(INTERMEDIATE)/template_scan/template_scan.c
+   $(CC)  $(CFLAGS) -o $(OUT)/template_scan $(INTERMEDIATE)/template_scan/template_scan.c

 .PRECIOUS: $(INTERMEDIATE)/tester/%.c
 $(INTERMEDIATE)/tester/%.c: tester/%.cbrt
@@ -66,25 +68,25 @@ $(INTERMEDIATE)/tester/cpp/%.cpp: tester/cpp/%.cbrt
    $(OUT)/carburetta $< --c $@ --h

 $(INTERMEDIATE)/tester/cpp/%.o: $(INTERMEDIATE)/tester/cpp/%.cpp
-   $(CC) $(CXXFLAGS) -c $^ -o $@
+   $(CXX) $(CXXFLAGS) -c $^ -o $@

 $(OUT)/tester: $(TESTS_C) $(TESTS_CPP_OBJ) tester/tester.c
-   $(CC) -o $@ $^ -lstdc++
+   $(CXX) $(CXXFLAGS) -o $@ $^ -lstdc++
+

-  
 .PRECIOUS: $(INTERMEDIATE)/tilly/%.cpp
 $(INTERMEDIATE)/tilly/%.cpp: examples/tilly/%.cbrt
    mkdir -p $(@D)
    $(OUT)/carburetta $< --c $@ --h

 $(INTERMEDIATE)/tilly/%.o: $(INTERMEDIATE)/tilly/%.cpp $(TILLY_CBRT_CPP_SRC)
-   $(CC) $(CXXFLAGS) -c $< -o $@ -lstdc++ -I examples/tilly/ -I $(INTERMEDIATE)/tilly/
+   $(CXX) $(CXXFLAGS) -c $< -o $@ -lstdc++ -I examples/tilly/ -I $(INTERMEDIATE)/tilly/

 $(INTERMEDIATE)/tilly/%.o: examples/tilly/%.cpp $(TILLY_CBRT_CPP_SRC)
-   $(CC) $(CXXFLAGS) -c $< -o $@ -lstdc++ -I examples/tilly/ -I $(INTERMEDIATE)/tilly/
+   $(CXX) $(CXXFLAGS) -c $< -o $@ -lstdc++ -I examples/tilly/ -I $(INTERMEDIATE)/tilly/

 $(OUT)/tilly: $(TILLY_CPP_OBJ) $(TILLY_CBRT_CPP_OBJ)
-   $(CC) -o $@ $^ -lstdc++
+   $(CXX) $(CXXFLAGS) -o $@ $^ -lstdc++

 .PHONY: clean
 clean:

Regards from near Paris in France:

Basile Starynkevitch basile@starynkevitch.net (only mine opinions / les opinions sont miennes uniquement) 8 rue de la Faïencerie, 92340 Bourg-la-Reine, France web page: starynkevitch.net/Basile/ See/voir: https://github.com/RefPerSys/RefPerSys

martijnboekhorst commented 5 months ago

Cannot take patches due to copyright, that said the makefile has received a much needed upgrade (commit e3962e5 ) which should address your concerns and some others. Let me know how it fares, thank you for raising the issue.