######################################################################### # # makefile for Blitz-64 tools # # Harry Porter - 13 December 2023 # # To compile the Blitz-64 Tools, type 'make' in directory "blitz/tools/src". # This directory contains the source files for the tools. The Linux/Unix # 'make' utility will execute all the necessary compiles as needed, based # on files' most-recent-update times. # ######################################################################### # # The following options are/could be used when compiling for: # Apple Mac with Intel Processors # -g add debugging info for use by gdb # -Wall display all warnings # -w suppress warnings # -c compile only, & produce .o # -Wl,-stack_size,0x100000000 Flag to linker; increases stack size to 4 GiByte # -DBLITZ_HOST_IS_LITTLE_ENDIAN defines a Blitz-specific flag # -DWithoutOpt defines a Blitz-specific flag # -DWithOpt defines a Blitz-specific flag CC=gcc CFLAGS=-std=c99 -Wall -O2 -DBLITZ_HOST_IS_LITTLE_ENDIAN LFLAGS=-lm CPLUSPLUS=g++ CPLUSPLUSFLAGS= -Wall -DBLITZ_HOST_IS_LITTLE_ENDIAN -Wno-unused-but-set-variable all: ../bin/blitz ../bin/asm ../bin/dumpobj ../bin/link ../bin/hexdump \ ../bin/check ../bin/hexify ../bin/createlib ../bin/kpl CheckHostCompatibility1.s: CheckHostCompatibility.c $(CC) -g -std=c99 -Wall -DBLITZ_HOST_IS_LITTLE_ENDIAN -DWithoutOpt \ CheckHostCompatibility.c -S -o CheckHostCompatibility1.s CheckHostCompatibility2.s: CheckHostCompatibility.c $(CC) -g -std=c99 -Wall -O2 -DBLITZ_HOST_IS_LITTLE_ENDIAN -DWithOpt \ CheckHostCompatibility.c -S -o CheckHostCompatibility2.s ../bin/blitz: blitz.c BlitzSupport.c BlitzSupport2.c CheckHostCompatibility1.s CheckHostCompatibility2.s $(CC) blitz.c CheckHostCompatibility1.s CheckHostCompatibility2.s $(LFLAGS) -o ../bin/blitz ../bin/asm: asm.c BlitzSupport.c BlitzSupport2.c CheckHostCompatibility1.s CheckHostCompatibility2.s $(CC) $(CFLAGS) asm.c CheckHostCompatibility1.s CheckHostCompatibility2.s $(LFLAGS) -o ../bin/asm ../bin/dumpobj: dumpobj.c BlitzSupport.c BlitzSupport2.c CheckHostCompatibility1.s CheckHostCompatibility2.s $(CC) $(CFLAGS) dumpobj.c CheckHostCompatibility1.s CheckHostCompatibility2.s $(LFLAGS) -o ../bin/dumpobj ../bin/link: link.c BlitzSupport.c BlitzSupport2.c CheckHostCompatibility1.s CheckHostCompatibility2.s $(CC) $(CFLAGS) link.c CheckHostCompatibility1.s CheckHostCompatibility2.s $(LFLAGS) -o ../bin/link ../bin/hexdump: hexdump.c BlitzSupport.c BlitzSupport2.c CheckHostCompatibility1.s CheckHostCompatibility2.s $(CC) $(CFLAGS) hexdump.c CheckHostCompatibility1.s CheckHostCompatibility2.s $(LFLAGS) -o ../bin/hexdump ../bin/check: check.c BlitzSupport.c BlitzSupport2.c CheckHostCompatibility1.s CheckHostCompatibility2.s $(CC) $(CFLAGS) check.c CheckHostCompatibility1.s CheckHostCompatibility2.s $(LFLAGS) -o ../bin/check ../bin/hexify: hexify.c BlitzSupport.c BlitzSupport2.c CheckHostCompatibility1.s CheckHostCompatibility2.s $(CC) $(CFLAGS) hexify.c CheckHostCompatibility1.s CheckHostCompatibility2.s $(LFLAGS) -o ../bin/hexify ../bin/createlib: createlib.c BlitzSupport.c BlitzSupport2.c CheckHostCompatibility1.s CheckHostCompatibility2.s $(CC) $(CFLAGS) createlib.c CheckHostCompatibility1.s CheckHostCompatibility2.s $(LFLAGS) -o ../bin/createlib #################### COMPILE KPL Compiler #################### kpl/CheckHostCompatibility1.s: kpl/CheckHostCompatibility.cc $(CPLUSPLUS) -Wall -DBLITZ_HOST_IS_LITTLE_ENDIAN -DWithoutOpt kpl/CheckHostCompatibility.cc\ -S -o kpl/CheckHostCompatibility1.s kpl/CheckHostCompatibility2.s: kpl/CheckHostCompatibility.cc $(CPLUSPLUS) -Wall -O2 -DBLITZ_HOST_IS_LITTLE_ENDIAN -DWithOpt kpl/CheckHostCompatibility.cc\ -S -o kpl/CheckHostCompatibility2.s kpl/main.o: kpl/main.cc kpl/main.h kpl/ast.h kpl/ir.h BlitzSupport.c BlitzSupport2.c $(CPLUSPLUS) $(CPLUSPLUSFLAGS) -c kpl/main.cc -o kpl/main.o kpl/lexer.o: kpl/lexer.cc kpl/main.h kpl/ast.h BlitzSupport.c BlitzSupport2.c $(CPLUSPLUS) $(CPLUSPLUSFLAGS) -c kpl/lexer.cc -o kpl/lexer.o kpl/ast.o: kpl/ast.cc kpl/main.h kpl/ast.h BlitzSupport.c BlitzSupport2.c $(CPLUSPLUS) $(CPLUSPLUSFLAGS) -c kpl/ast.cc -o kpl/ast.o kpl/printAst.o: kpl/printAst.cc kpl/main.h kpl/ast.h BlitzSupport.c BlitzSupport2.c $(CPLUSPLUS) $(CPLUSPLUSFLAGS) -c kpl/printAst.cc -o kpl/printAst.o kpl/parser.o: kpl/parser.cc kpl/main.h kpl/ast.h BlitzSupport.c BlitzSupport2.c $(CPLUSPLUS) $(CPLUSPLUSFLAGS) -c kpl/parser.cc -o kpl/parser.o kpl/mapping.o: kpl/mapping.cc kpl/main.h kpl/ast.h BlitzSupport.c BlitzSupport2.c $(CPLUSPLUS) $(CPLUSPLUSFLAGS) -c kpl/mapping.cc -o kpl/mapping.o kpl/check.o: kpl/check.cc kpl/main.h kpl/ast.h BlitzSupport.c BlitzSupport2.c $(CPLUSPLUS) $(CPLUSPLUSFLAGS) -c kpl/check.cc -o kpl/check.o kpl/ir.o: kpl/ir.cc kpl/main.h kpl/ast.h kpl/ir.h BlitzSupport.c BlitzSupport2.c $(CPLUSPLUS) $(CPLUSPLUSFLAGS) -c kpl/ir.cc -o kpl/ir.o kpl/gen.o: kpl/gen.cc kpl/main.h kpl/ast.h kpl/ir.h BlitzSupport.c BlitzSupport2.c $(CPLUSPLUS) $(CPLUSPLUSFLAGS) -c kpl/gen.cc -o kpl/gen.o kpl/opt.o: kpl/opt.cc kpl/main.h kpl/ast.h kpl/ir.h BlitzSupport.c BlitzSupport2.c $(CPLUSPLUS) $(CPLUSPLUSFLAGS) -c kpl/opt.cc -o kpl/opt.o ### Perform final linking... ../bin/kpl: kpl/main.o kpl/lexer.o kpl/ast.o kpl/parser.o kpl/check.o kpl/ir.o \ kpl/gen.o kpl/opt.o kpl/printAst.o kpl/mapping.o \ kpl/CheckHostCompatibility1.s kpl/CheckHostCompatibility2.s $(CPLUSPLUS) $(CPLUSPLUSFLAGS) -Wl,-stack_size,0x20000000 \ kpl/main.o kpl/lexer.o kpl/ast.o kpl/printAst.o kpl/parser.o \ kpl/CheckHostCompatibility1.s kpl/CheckHostCompatibility2.s \ kpl/mapping.o kpl/check.o kpl/ir.o kpl/gen.o kpl/opt.o -o ../bin/kpl