@@ -34,6 +34,10 @@ INTASM=-I build/gen/int $(ASMFLAGS)
3434FPCXX =-DFASTBASIC_FP -Ibuild/gen/fp -Isrc/compiler
3535INTCXX =-Ibuild/gen/int -Isrc/compiler
3636
37+ # By default use quiet build
38+ Q =@
39+ ECHO =@printf "\e[0;32m%s\e[0m\n"
40+
3741# Detect Windows OS and set file extensions:
3842ifeq ($(strip $(shell echo '_WIN32' | $(CROSS )$(CXX ) -E - | grep "_WIN32") ) ,_WIN32)
3943 # Linux / OS-X
@@ -507,32 +511,33 @@ all: $(ATR) $(COMPILER_COMMON) $(COMPILER_TARGET)
507511dist : $(ATR ) $(ZIPFILE )
508512
509513clean : test-clean
510- rm -f $(OBJS ) $(LSTS ) $(FILES ) $(ATR ) $(ZIPFILE ) $(XEXS ) $(MAPS ) \
514+ $( Q ) rm -f $(OBJS ) $(LSTS ) $(FILES ) $(ATR ) $(ZIPFILE ) $(XEXS ) $(MAPS ) \
511515 $(LBLS ) $(ASYNT ) $(CSYNT ) $(COMPILER_HOST ) $(TARGET_OBJ ) \
512516 $(COMPILER_HST_DEPS ) $(COMPILER_TGT_DEPS ) \
513517 $(SAMPLE_BAS:%.bas=build/gen/%.asm ) \
514518 $(SAMP_OBJS ) $(HOST_OBJ )
515519
516520distclean : clean test-distclean
517- rm -f build/gen/int/basic.asm build/gen/fp/basic.asm \
521+ $( Q ) rm -f build/gen/int/basic.asm build/gen/fp/basic.asm \
518522 build/gen/int/basic.cc build/gen/fp/basic.cc \
519523 build/gen/int/basic.h build/gen/fp/basic.h \
520524 build/gen/int/basic.inc build/gen/fp/basic.inc \
521525 build/gen/int/editor.asm build/gen/fp/editor.asm \
522526 $(CMD_BAS_SRC ) \
523527 $(CMD_BAS_SRC:build/gen/%.bas=build/gen/fp/%.asm ) \
524528 $(COMPILER_HOST ) $(COMPILER_TARGET ) $(COMPILER_COMMON )
525- -rmdir build/gen/fp build/gen/int \
529+ $( Q ) -rmdir build/gen/fp build/gen/int \
526530 build/obj/fp/interp build/obj/int/interp build/obj/fp build/obj/int \
527531 build/obj/cxx-fp build/obj/cxx-int \
528532 build/obj/cxx-tgt-fp build/obj/cxx-tgt-int \
529533 build/compiler/asminc \
530534 build/bin build/gen build/obj build/disk build/compiler
531- $(MAKE ) -C testsuite distclean
535+ $(Q )$( MAKE ) -C testsuite distclean
532536
533537# Build an ATR disk image using "mkatr".
534538$(ATR ) : $(DOS:%=$(DOSDIR ) /% ) $(FILES ) | build
535- mkatr $@ $(DOSDIR ) -b $^
539+ $(ECHO ) " Creating ATR disk image"
540+ $(Q ) mkatr $@ $(DOSDIR ) -b $^
536541
537542# Build compiler ZIP file.
538543$(ZIPFILE ) : $(COMPILER_COMMON ) $(COMPILER_TARGET ) | build
@@ -544,198 +549,238 @@ $(ZIPFILE): $(COMPILER_COMMON) $(COMPILER_TARGET) | build
544549
545550# BAS sources also transformed to ATASCII (replace $0A with $9B)
546551build/disk/% .bas : samples/fp/% .bas | build/disk
547- LC_ALL=C tr ' \n' ' \233' < $< > $@
552+ $( Q ) LC_ALL=C tr ' \n' ' \233' < $< > $@
548553
549554build/disk/% .bas : samples/int/% .bas | build/disk
550- LC_ALL=C tr ' \n' ' \233' < $< > $@
555+ $( Q ) LC_ALL=C tr ' \n' ' \233' < $< > $@
551556
552557build/disk/% .bas : tests/% .bas | build/disk
553- LC_ALL=C tr ' \n' ' \233' < $< > $@
558+ $( Q ) LC_ALL=C tr ' \n' ' \233' < $< > $@
554559
555560# Transform a text file to ATASCII (replace $0A with $9B)
556561build/disk/% : % version.mk | build/disk
557- LC_ALL=C sed ' s/%VERSION%/$(VERSION)/' < $< | LC_ALL=C tr ' \n' ' \233' > $@
562+ $( Q ) LC_ALL=C sed ' s/%VERSION%/$(VERSION)/' < $< | LC_ALL=C tr ' \n' ' \233' > $@
558563
559564build/disk/% .txt : % .md version.mk | build/disk
560- LC_ALL=C sed ' s/%VERSION%/$(VERSION)/' < $< | LC_ALL=C awk ' BEGIN{for(n=0;n<127;n++)chg[sprintf("%c",n)]=128+n} {l=length($$0);for(i=1;i<=l;i++){c=substr($$0,i,1);if(c=="`"){x=1-x;if(x)c="\002";else c="\026";}else if(x)c=chg[c];printf "%c",c;}printf "\233";}' > $@
565+ $( Q ) LC_ALL=C sed ' s/%VERSION%/$(VERSION)/' < $< | LC_ALL=C awk ' BEGIN{for(n=0;n<127;n++)chg[sprintf("%c",n)]=128+n} {l=length($$0);for(i=1;i<=l;i++){c=substr($$0,i,1);if(c=="`"){x=1-x;if(x)c="\002";else c="\026";}else if(x)c=chg[c];printf "%c",c;}printf "\233";}' > $@
561566
562567# Copy ".XEX" as ".COM"
563568build/disk/% .com : build/bin/% .xex | build/disk
564- cp $< $@
569+ $( Q ) cp $< $@
565570
566571# Parser generator for 6502
567572$(ASYNT ) : src/syntax/asynt.cc | build/gen
568- $(CXX ) $(CXXFLAGS ) -o $@ $<
573+ $(ECHO ) " Compile syntax parsing tool $<"
574+ $(Q )$(CXX ) $(CXXFLAGS ) -o $@ $<
569575
570576# Parser generator for C++
571577$(CSYNT ) : src/syntax/csynt.cc | build/gen
572- $(CXX ) $(CXXFLAGS ) -o $@ $<
578+ $(ECHO ) " Compile syntax parsing tool $<"
579+ $(Q )$(CXX ) $(CXXFLAGS ) -o $@ $<
573580
574581# Host compiler build
575582build/obj/cxx-int/% .o : src/compiler/% .cc | build/obj/cxx-int
576- $(CXX ) $(CXXFLAGS ) $(INTCXX ) -c -o $@ $<
583+ $(ECHO ) " Compile INT $<"
584+ $(Q )$(CXX ) $(CXXFLAGS ) $(INTCXX ) -c -o $@ $<
577585
578586build/obj/cxx-int/% .o : build/gen/int/% .cc | build/obj/cxx-int
579- $(CXX ) $(CXXFLAGS ) $(INTCXX ) -c -o $@ $<
587+ $(ECHO ) " Compile INT $<"
588+ $(Q )$(CXX ) $(CXXFLAGS ) $(INTCXX ) -c -o $@ $<
580589
581590$(COMPILER_HOST_INT ) : $(COMPILER_HST_INT_OBJ ) | build/bin
582- $(CXX ) $(CXXFLAGS ) $(INTCXX ) -o $@ $^
591+ $(ECHO ) " Linking INT compiler"
592+ $(Q )$(CXX ) $(CXXFLAGS ) $(INTCXX ) -o $@ $^
583593
584594build/obj/cxx-fp/% .o : src/compiler/% .cc | build/obj/cxx-fp
585- $(CXX ) $(CXXFLAGS ) $(FPCXX ) -c -o $@ $<
595+ $(ECHO ) " Compile FP $<"
596+ $(Q )$(CXX ) $(CXXFLAGS ) $(FPCXX ) -c -o $@ $<
586597
587598build/obj/cxx-fp/% .o : build/gen/fp/% .cc | build/obj/cxx-fp
588- $(CXX ) $(CXXFLAGS ) $(FPCXX ) -c -o $@ $<
599+ $(ECHO ) " Compile FP $<"
600+ $(Q )$(CXX ) $(CXXFLAGS ) $(FPCXX ) -c -o $@ $<
589601
590602$(COMPILER_HOST_FP ) : $(COMPILER_HST_FP_OBJ ) | build/bin
591- $(CXX ) $(CXXFLAGS ) $(FPCXX ) -o $@ $^
603+ $(ECHO ) " Linking FP compiler"
604+ $(Q )$(CXX ) $(CXXFLAGS ) $(FPCXX ) -o $@ $^
592605
593606$(CA65_HOST ) : $(CA65_SRC ) | build/bin
594- $(CC ) $(CFLAGS ) $(CFLAGS_CC65 ) -o $@ $^
607+ $(ECHO ) " Compile CA65"
608+ $(Q )$(CC ) $(CFLAGS ) $(CFLAGS_CC65 ) -o $@ $^
595609
596610$(LD65_HOST ) : $(LD65_SRC ) | build/bin
597- $(CC ) $(CFLAGS ) $(CFLAGS_CC65 ) -o $@ $^
611+ $(ECHO ) " Compile LD65"
612+ $(Q )$(CC ) $(CFLAGS ) $(CFLAGS_CC65 ) -o $@ $^
598613
599614$(AR65_HOST ) : $(AR65_SRC ) | build/bin
600- $(CC ) $(CFLAGS ) $(CFLAGS_CC65 ) -o $@ $^
615+ $(ECHO ) " Compile AR65"
616+ $(Q )$(CC ) $(CFLAGS ) $(CFLAGS_CC65 ) -o $@ $^
601617
602618# Target compiler build
603619ifeq ($(CROSS ) ,)
604620$(COMPILER_TARGET ) : build/compiler/% $(EXT ) : build/bin/% | build/compiler
605- cp -f $< $@
621+ $( Q ) cp -f $< $@
606622else
607623build/obj/cxx-tgt-int/% .o : src/compiler/% .cc | build/obj/cxx-tgt-int
608- $(CROSS )$(CXX ) $(CXXFLAGS ) $(INTCXX ) -c -o $@ $<
624+ $(ECHO ) " Compile INT $<"
625+ $(Q )$(CROSS )$(CXX ) $(CXXFLAGS ) $(INTCXX ) -c -o $@ $<
609626
610627build/obj/cxx-tgt-int/% .o : build/gen/int/% .cc | build/obj/cxx-tgt-int
611- $(CROSS )$(CXX ) $(CXXFLAGS ) $(INTCXX ) -c -o $@ $<
628+ $(ECHO ) " Compile INT $<"
629+ $(Q )$(CROSS )$(CXX ) $(CXXFLAGS ) $(INTCXX ) -c -o $@ $<
612630
613631$(COMPILER_TARGET_INT ) : $(COMPILER_TGT_INT_OBJ ) | build/compiler
614- $(CROSS )$(CXX ) $(CXXFLAGS ) $(INTCXX ) -o $@ $^
632+ $(ECHO ) " Linking target INT compiler"
633+ $(Q )$(CROSS )$(CXX ) $(CXXFLAGS ) $(INTCXX ) -o $@ $^
615634
616635build/obj/cxx-tgt-fp/% .o : src/compiler/% .cc | build/obj/cxx-tgt-fp
617- $(CROSS )$(CXX ) $(CXXFLAGS ) $(FPCXX ) -c -o $@ $<
636+ $(ECHO ) " Compile FP $<"
637+ $(Q )$(CROSS )$(CXX ) $(CXXFLAGS ) $(FPCXX ) -c -o $@ $<
618638
619639build/obj/cxx-tgt-fp/% .o : build/gen/fp/% .cc | build/obj/cxx-tgt-fp
620- $(CROSS )$(CXX ) $(CXXFLAGS ) $(FPCXX ) -c -o $@ $<
640+ $(ECHO ) " Compile FP $<"
641+ $(Q )$(CROSS )$(CXX ) $(CXXFLAGS ) $(FPCXX ) -c -o $@ $<
621642
622643$(COMPILER_TARGET_FP ) : $(COMPILER_TGT_FP_OBJ ) | build/compiler
623- $(CROSS )$(CXX ) $(CXXFLAGS ) $(FPCXX ) -o $@ $^
644+ $(ECHO ) " Linking target FP compiler"
645+ $(Q )$(CROSS )$(CXX ) $(CXXFLAGS ) $(FPCXX ) -o $@ $^
624646
625647$(CA65_TARGET ) : $(CA65_SRC ) | build/compiler
626- $(CROSS )$(CC ) $(CFLAGS ) $(CFLAGS_CC65 ) -o $@ $^
648+ $(ECHO ) " Compile target CA65"
649+ $(Q )$(CROSS )$(CC ) $(CFLAGS ) $(CFLAGS_CC65 ) -o $@ $^
627650
628651$(LD65_TARGET ) : $(LD65_SRC ) | build/compiler
629- $(CROSS )$(CC ) $(CFLAGS ) $(CFLAGS_CC65 ) -o $@ $^
652+ $(ECHO ) " Compile target LD65"
653+ $(Q )$(CROSS )$(CC ) $(CFLAGS ) $(CFLAGS_CC65 ) -o $@ $^
630654
631655$(AR65_TARGET ) : $(AR65_SRC ) | build/compiler
632- $(CROSS )$(CC ) $(CFLAGS ) $(CFLAGS_CC65 ) -o $@ $^
656+ $(ECHO ) " Compile target AR65"
657+ $(Q )$(CROSS )$(CC ) $(CFLAGS ) $(CFLAGS_CC65 ) -o $@ $^
633658endif
634659
635660# Generator for syntax file - 6502 version - FLOAT
636661build/gen/fp/% .asm : src/% .syn $(ASYNT ) | build/gen/fp
637- $(ASYNT ) $(SYNTFLAGS_ASM ) $(SYNTFP ) $< -o $@
662+ $(ECHO ) " Creating FP parsing bytecode"
663+ $(Q )$(ASYNT ) $(SYNTFLAGS_ASM ) $(SYNTFP ) $< -o $@
638664
639665# Generator for syntax file - 6502 version - INTEGER
640666build/gen/int/% .asm : src/% .syn $(ASYNT ) | build/gen/int
641- $(ASYNT ) $(SYNTFLAGS_ASM ) $< -o $@
667+ $(ECHO ) " Creating INT parsing bytecode"
668+ $(Q )$(ASYNT ) $(SYNTFLAGS_ASM ) $< -o $@
642669
643670# Generator for syntax file - C++ version - FLOAT
644671build/gen/fp/% .cc build/gen/fp/% .h : src/% .syn $(CSYNT ) | build/gen/fp
645- $(CSYNT ) $(SYNTFLAGS_CPP ) $(SYNTFP ) $< -o build/gen/fp/$* .cc
672+ $(ECHO ) " Creating FP cross parser"
673+ $(Q )$(CSYNT ) $(SYNTFLAGS_CPP ) $(SYNTFP ) $< -o build/gen/fp/$* .cc
646674
647675# Generator for syntax file - C++ version - INTEGER
648676build/gen/int/% .cc build/gen/int/% .h : src/% .syn $(CSYNT ) | build/gen/int
649- $(CSYNT ) $(SYNTFLAGS_CPP ) $< -o build/gen/int/$* .cc
677+ $(ECHO ) " Creating INT cross parser"
678+ $(Q )$(CSYNT ) $(SYNTFLAGS_CPP ) $< -o build/gen/int/$* .cc
650679
651680# Sets the version inside command line compiler source
652681build/gen/cmdline-vers.bas : src/cmdline.bas version.mk
653- LC_ALL=C sed ' s/%VERSION%/$(VERSION)/' < $< > $@
682+ $( Q ) LC_ALL=C sed ' s/%VERSION%/$(VERSION)/' < $< > $@
654683
655684# Main program file
656685build/bin/fb.xex : $(IDE_OBJS_FP ) $(COMMON_OBJS_FP ) $(IDE_BAS_OBJS_FP ) | build/bin $(LD65_HOST )
657- $(LD65_HOST ) $(LD65OPTS ) -Ln $(@:.xex=.lbl ) -vm -m $(@:.xex=.map ) -o $@ $^
686+ $(ECHO ) " Linking floating point IDE"
687+ $(Q )$(LD65_HOST ) $(LD65OPTS ) -Ln $(@:.xex=.lbl ) -vm -m $(@:.xex=.map ) -o $@ $^
658688
659689build/bin/fbc.xex : $(CMD_OBJS_FP ) $(COMMON_OBJS_FP ) $(CMD_BAS_OBJS_FP ) | build/bin $(LD65_HOST )
660- $(LD65_HOST ) $(LD65OPTS ) -Ln $(@:.xex=.lbl ) -vm -m $(@:.xex=.map ) -o $@ $^
690+ $(ECHO ) " Linking command line compiler"
691+ $(Q )$(LD65_HOST ) $(LD65OPTS ) -Ln $(@:.xex=.lbl ) -vm -m $(@:.xex=.map ) -o $@ $^
661692
662693build/bin/fbi.xex : $(IDE_OBJS_INT ) $(COMMON_OBJS_INT ) $(IDE_BAS_OBJS_INT ) | build/bin $(LD65_HOST )
663- $(LD65_HOST ) $(LD65OPTS ) -Ln $(@:.xex=.lbl ) -vm -m $(@:.xex=.map ) -o $@ $^
694+ $(ECHO ) " Linking integer IDE"
695+ $(Q )$(LD65_HOST ) $(LD65OPTS ) -Ln $(@:.xex=.lbl ) -vm -m $(@:.xex=.map ) -o $@ $^
664696
665697# Compiled program files
666698build/bin/% .xex : build/obj/fp/% .o $(LIB_FP ) | build/bin $(LD65_HOST )
667- $(LD65_HOST ) $(LD65OPTS ) -Ln $(@:.xex=.lbl ) -vm -m $(@:.xex=.map ) -o $@ $^
699+ $(ECHO ) " Linking floating point $@ "
700+ $(Q )$(LD65_HOST ) $(LD65OPTS ) -Ln $(@:.xex=.lbl ) -vm -m $(@:.xex=.map ) -o $@ $^
668701
669702build/bin/% .xex : build/obj/int/% .o $(LIB_INT ) | build/bin $(LD65_HOST )
670- $(LD65_HOST ) $(LD65OPTS ) -Ln $(@:.xex=.lbl ) -vm -m $(@:.xex=.map ) -o $@ $^
703+ $(ECHO ) " Linking integer $@ "
704+ $(Q )$(LD65_HOST ) $(LD65OPTS ) -Ln $(@:.xex=.lbl ) -vm -m $(@:.xex=.map ) -o $@ $^
671705
672706# Generates basic bytecode from source file
673707build/gen/fp/% .asm : build/gen/% .bas $(COMPILER_HOST_FP ) | build/gen/fp
674- $(COMPILER_HOST_FP ) $< $@
708+ $(ECHO ) " Compiling FP BASIC $<"
709+ $(Q )$(COMPILER_HOST_FP ) $< $@
675710
676711build/gen/fp/% .asm : src/% .bas $(COMPILER_HOST_FP ) | build/gen/fp
677- $(COMPILER_HOST_FP ) $< $@
712+ $(ECHO ) " Compiling FP BASIC $<"
713+ $(Q )$(COMPILER_HOST_FP ) $< $@
678714
679715build/gen/int/% .asm : src/% .bas $(COMPILER_HOST_INT ) | build/gen/int
680- $(COMPILER_HOST_INT ) $< $@
716+ $(ECHO ) " Compiling INT BASIC $<"
717+ $(Q )$(COMPILER_HOST_INT ) $< $@
681718
682719build/gen/fp/% .asm : samples/fp/% .bas $(COMPILER_HOST_FP ) | build/gen/fp
683- $(COMPILER_HOST_FP ) $< $@
720+ $(ECHO ) " Compiling FP BASIC sample $<"
721+ $(Q )$(COMPILER_HOST_FP ) $< $@
684722
685723build/gen/int/% .asm : samples/int/% .bas $(COMPILER_HOST_INT ) | build/gen/int
686- $(COMPILER_HOST_INT ) $< $@
724+ $(ECHO ) " Compiling INT BASIC sample $<"
725+ $(Q )$(COMPILER_HOST_INT ) $< $@
687726
688727# Object file rules
689728build/obj/fp/% .o : src/% .asm | build/obj/fp build/obj/fp/interp $(CA65_HOST )
690- $(CA65_HOST ) $(CA65OPTS ) $(FPASM ) -l $(@:.o=.lst ) -o $@ $<
729+ $(ECHO ) " Assembly FP $<"
730+ $(Q )$(CA65_HOST ) $(CA65OPTS ) $(FPASM ) -l $(@:.o=.lst ) -o $@ $<
691731
692732build/obj/fp/% .o : build/gen/fp/% .asm | build/obj/fp $(CA65_HOST )
693- $(CA65_HOST ) $(CA65OPTS ) $(FPASM ) -l $(@:.o=.lst ) -o $@ $<
733+ $(ECHO ) " Assembly FP $<"
734+ $(Q )$(CA65_HOST ) $(CA65OPTS ) $(FPASM ) -l $(@:.o=.lst ) -o $@ $<
694735
695736build/obj/int/% .o : src/% .asm | build/obj/int build/obj/int/interp $(CA65_HOST )
696- $(CA65_HOST ) $(CA65OPTS ) $(INTASM ) -l $(@:.o=.lst ) -o $@ $<
737+ $(ECHO ) " Assembly INT $<"
738+ $(Q )$(CA65_HOST ) $(CA65OPTS ) $(INTASM ) -l $(@:.o=.lst ) -o $@ $<
697739
698740build/obj/int/% .o : build/gen/int/% .asm | build/obj/int $(CA65_HOST )
699- $(CA65_HOST ) $(CA65OPTS ) $(INTASM ) -l $(@:.o=.lst ) -o $@ $<
741+ $(ECHO ) " Assembly INT $<"
742+ $(Q )$(CA65_HOST ) $(CA65OPTS ) $(INTASM ) -l $(@:.o=.lst ) -o $@ $<
700743
701744build/gen build/obj build/obj/fp build/obj/int build/obj/fp/interp build/obj/int/interp \
702745build/gen/fp build/gen/int build/obj/cxx-fp build/obj/cxx-int build/obj/cxx-tgt-fp \
703746build/obj/cxx-tgt-int build/bin build/disk build/compiler/asminc build/compiler build :
704- mkdir -p $@
747+ $( Q ) mkdir -p $@
705748
706749# Library files
707750$(LIB_FP ) : $(RT_OBJS_FP ) $(COMMON_OBJS_FP ) | build/compiler $(AR65_HOST )
708- rm -f $@
709- $(AR65_HOST ) a $@ $^
751+ $(ECHO ) " Creating FP library $@ "
752+ $(Q ) rm -f $@
753+ $(Q )$(AR65_HOST ) a $@ $^
710754
711755$(LIB_INT ) : $(RT_OBJS_INT ) $(COMMON_OBJS_INT ) | build/compiler $(AR65_HOST )
712- rm -f $@
713- $(AR65_HOST ) a $@ $^
756+ $(ECHO ) " Creating INT library $@ "
757+ $(Q ) rm -f $@
758+ $(Q )$(AR65_HOST ) a $@ $^
714759
715760# Runs the test suite
716761.PHONY : test
717762.PHONY : test-clean
718763.PHONY : test-distclean
719764test : $(COMPILER_COMMON ) $(COMPILER_HOST ) build/bin/fbc.xex
720- $(MAKE ) -C testsuite
765+ $(Q )$( MAKE ) -C testsuite
721766
722767test-clean :
723- $(MAKE ) -C testsuite clean
768+ $(Q )$( MAKE ) -C testsuite clean
724769
725770test-distclean :
726- $(MAKE ) -C testsuite distclean
771+ $(Q )$( MAKE ) -C testsuite distclean
727772
728773# Copy manual to compiler changing the version string.
729774build/compiler/MANUAL.md : manual.md version.mk | build/compiler
730- LC_ALL=C sed ' s/%VERSION%/$(VERSION)/' < $< > $@
775+ $( Q ) LC_ALL=C sed ' s/%VERSION%/$(VERSION)/' < $< > $@
731776
732777# Copy other files to compiler folder
733778build/compiler/% : compiler/% | build/compiler
734- cp -f $< $@
779+ $( Q ) cp -f $< $@
735780
736781# Copy assembly include files from CC65
737782build/compiler/asminc/% : cc65/asminc/% | build/compiler/asminc
738- cp -f $< $@
783+ $( Q ) cp -f $< $@
739784
740785# Dependencies
741786$(COMMON_OBJS_FP ) : src/deftok.inc
0 commit comments