Skip to content

Instantly share code, notes, and snippets.

@nwtnni
Created September 14, 2022 18:48
Show Gist options
  • Save nwtnni/6ec50c0585a55685c77981789639e538 to your computer and use it in GitHub Desktop.
Save nwtnni/6ec50c0585a55685c77981789639e538 to your computer and use it in GitHub Desktop.
CS 375 Updated Makefile
# makefile - Used to make CS 375 compiler in C
# 21 Sep 04; 07 Feb 17; 11 Jan 18; 06 Oct 21
#
# Gordon S. Novak Jr.
#
# token.h is assumed to be a local file because on some machines
# or yacc versions tokenb.h must be used instead (renamed token.h).
# To compile starter file lex1.c --> lex1
#
lex1: lexandr.o lex1.o scanner.o printtoken.o token.h lexan.h
cc -g -O0 -Wall -Wextra -fsanitize=undefined -o lex1 lexandr.o lex1.o scanner.o printtoken.o -lm
# To compile your file lexanc.c --> lexanc
#
lexanc: lexandr.o lexanc.o scanner.o printtoken.o token.h lexan.h
cc -g -O0 -Wall -Wextra -fsanitize=undefined -o lexanc lexandr.o lexanc.o scanner.o printtoken.o -lm
# To compile your file lexan.l --> lexer
#
lexer: lex.yy.o lexanl.o printtoken.o token.h lexan.h
cc -g -O0 -Wall -Wextra -fsanitize=undefined -o lexer lex.yy.o lexanl.o printtoken.o
# To compile starter file lex2.l --> lex2
#
lex2: lex2.yy.o lexanl.o printtoken.o token.h lexan.h
cc -g -O0 -Wall -Wextra -fsanitize=undefined -o lex2 lex2.yy.o lexanl.o printtoken.o
# To compile starter file lexasu.l --> lexasu
#
lexasu: lexasu.o
cc -g -O0 -Wall -Wextra -fsanitize=undefined -o lexasu lexasu.o -ll
# To compile starter file pars1.c --> pars1c
# using your file lexanc.c
pars1c: pars1c.o lexanc.o scanner.o printtoken.o pprint.o symtab.o
cc -g -O0 -Wall -Wextra -fsanitize=undefined -o pars1c pars1c.o lexanc.o scanner.o printtoken.o pprint.o symtab.o
# To compile your file parsc.c --> parsec
# using your file lexanc.c
parsec: parsc.o lexanc.o scanner.o printtoken.o pprint.o symtab.o
cc -g -O0 -Wall -Wextra -fsanitize=undefined -o parsec parsc.o lexanc.o scanner.o printtoken.o pprint.o symtab.o
# To compile starter file pars1.y --> pars1y
# using your file lexan.l
pars1y: pars1.tab.o lex.yy.o printtoken.o pprint.o symtab.o
cc -g -O0 -Wall -Wextra -fsanitize=undefined -o pars1y pars1.tab.o lex.yy.o printtoken.o pprint.o symtab.o -ll
# To compile your file parse.y --> parser
# using your file lexan.l
parser: y.tab.o lex.yy.o printtoken.o pprint.o symtab.o
cc -g -O0 -Wall -Wextra -fsanitize=undefined -o parser y.tab.o lex.yy.o printtoken.o pprint.o symtab.o -ll
# To compile starter file codgen.c --> comp1y
# using your files lexan.l and parse.y
comp1y: y.tab.o lex.yy.o printtoken.o pprint.o symtab.o codgen.o genasm.o
cc -g -O0 -Wall -Wextra -fsanitize=undefined -o comp1y y.tab.o lex.yy.o printtoken.o pprint.o symtab.o codgen.o \
genasm.o
# To compile your file codegen.c --> compiler
# using your files lexan.l and parse.y
compiler: y.tab.o lex.yy.o printtoken.o pprint.o symtab.o codegen.o genasm.o
cc -g -O0 -Wall -Wextra -fsanitize=undefined -o compiler y.tab.o lex.yy.o printtoken.o pprint.o symtab.o \
codegen.o genasm.o
# To compile starter file codgen.c --> comp1c
# using your files lexanc.c and parsc.c
comp1c: parsc.o lexanc.o scanner.o printtoken.o pprint.o symtab.o codgen.o \
genasm.o
cc -g -O0 -Wall -Wextra -fsanitize=undefined -o comp1c parsc.o lexanc.o scanner.o printtoken.o pprint.o \
symtab.o codgen.o genasm.o
# To compile your file codegen.c --> compc
# using your files lexanc.c and parsc.c
compc: parsc.o lexanc.o scanner.o printtoken.o pprint.o symtab.o codegen.o \
genasm.o
cc -g -O0 -Wall -Wextra -fsanitize=undefined -o compc parsc.o lexanc.o scanner.o printtoken.o pprint.o \
symtab.o codegen.o genasm.o
# To compile your file codegenb.c --> compb
# using your files lexan.l and parse.y
compb: y.tab.o lex.yy.o printtoken.o pprint.o symtab.o codegenb.o genasm.o
cc -g -O0 -Wall -Wextra -fsanitize=undefined -o compy y.tab.o lex.yy.o printtoken.o pprint.o symtab.o \
codegenb.o genasm.o
lexandr.o: lexandr.c token.h lexan.h
cc -g -O0 -Wall -Wextra -fsanitize=undefined -c lexandr.c
lexanl.o: lexanl.c token.h lexan.h
cc -g -O0 -Wall -Wextra -fsanitize=undefined -c lexanl.c
lex1.o: lex1.c token.h lexan.h
cc -g -O0 -Wall -Wextra -fsanitize=undefined -c lex1.c
lexanc.o: lexanc.c token.h lexan.h
cc -g -O0 -Wall -Wextra -fsanitize=undefined -c lexanc.c
scanner.o: scanner.c token.h lexan.h
cc -g -O0 -Wall -Wextra -fsanitize=undefined -c scanner.c
printtoken.o: printtoken.c token.h
cc -g -O0 -Wall -Wextra -fsanitize=undefined -c printtoken.c
symtab.o: symtab.c token.h symtab.h
cc -g -O0 -Wall -Wextra -fsanitize=undefined -c symtab.c
pars1c.o: pars1c.c lexan.h token.h symtab.h parse.h
cc -g -O0 -Wall -Wextra -fsanitize=undefined -c pars1c.c -o pars1c.o
parsc.o: parsc.c lexan.h token.h symtab.h parse.h
cc -g -O0 -Wall -Wextra -fsanitize=undefined -c parsc.c
pprint.o: pprint.c token.h
cc -g -O0 -Wall -Wextra -fsanitize=undefined -c pprint.c
genasm.o: genasm.c token.h symtab.h genasm.h
cc -g -O0 -Wall -Wextra -fsanitize=undefined -c genasm.c
codgen.o: codgen.c token.h symtab.h genasm.h
cc -g -O0 -Wall -Wextra -fsanitize=undefined -c codgen.c
codegen.o: codegen.c token.h symtab.h genasm.h
cc -g -O0 -Wall -Wextra -fsanitize=undefined -c codegen.c
codegenb.o: codegenb.c token.h symtab.h genasm.h
cc -g -O0 -Wall -Wextra -fsanitize=undefined -c codegenb.c
lex.yy.o: lex.yy.c
cc -g -O0 -Wall -Wextra -fsanitize=undefined -c lex.yy.c
lex.yy.c: lexan.l token.h
lex lexan.l
lex2.yy.o: lex2.yy.c
cc -g -O0 -Wall -Wextra -fsanitize=undefined -c lex2.yy.c
lex2.yy.c: lex2.l token.h lexan.h
lex -t lex2.l | cat >lex2.yy.c
y.tab.c: parse.y token.h parse.h symtab.h lexan.h
yacc parse.y
y.tab.o: y.tab.c
cc -g -O0 -Wall -Wextra -fsanitize=undefined -c y.tab.c
pars1.tab.c: pars1.y token.h parse.h symtab.h lexan.h
yacc -b pars1 pars1.y
pars1.tab.o: pars1.tab.c
cc -g -O0 -Wall -Wextra -fsanitize=undefined -c pars1.tab.c
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment