summaryrefslogtreecommitdiff
path: root/cuobjdump_to_ptxplus/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'cuobjdump_to_ptxplus/Makefile')
-rw-r--r--cuobjdump_to_ptxplus/Makefile145
1 files changed, 145 insertions, 0 deletions
diff --git a/cuobjdump_to_ptxplus/Makefile b/cuobjdump_to_ptxplus/Makefile
new file mode 100644
index 0000000..f58a0fd
--- /dev/null
+++ b/cuobjdump_to_ptxplus/Makefile
@@ -0,0 +1,145 @@
+BOOST_ROOT ?= /usr/include/boost
+
+LEX = flex
+LEXFLAGS = -B
+YACC = bison
+YFLAGS = -t -d -v --report=all
+CC = gcc
+CCFLAGS = -ggdb -I${BOOST_ROOT} -lboost_regex -lboost_filesystem -fPIC
+CXX = g++
+CXXFLAGS = ${CCFLAGS}
+LD = g++
+LDFLAGS = ${CCFLAGS}
+
+
+CUOBJDUMP_PARSER_OBJECTS = cuobjdump_parser.o cuobjdump_lexer.o
+SASS_PARSER_OBJECTS = sass_lexer.o sass_parser.o
+ELF_PARSER_OBJECTS = elf_lexer.o elf_parser.o
+HEADER_PARSER_OBJECTS = headerParser.o headerLexer.o
+PTX_PARSER_OBJECTS = ptx.tab.o lex.ptx_.o
+
+all: cuobjdump_to_ptxplus
+
+cuobjdump_to_ptxplus: stringList.o decudaInst.o decudaInstList.o cuobjdumpInst.o cuobjdumpInstList.o cuobjdump_to_ptxplus.o $(PTX_PARSER_OBJECTS) $(SASS_PARSER_OBJECTS) $(ELF_PARSER_OBJECTS) $(HEADER_PARSER_OBJECTS) $(CUOBJDUMP_PARSER_OBJECTS)
+ ${LD} ${LDFLAGS} -ocuobjdump_to_ptxplus stringList.o decudaInst.o decudaInstList.o headerParser.o headerLexer.o cuobjdumpInst.o cuobjdumpInstList.o cuobjdump_to_ptxplus.o lex.ptx_.o ptx.tab.o $(SASS_PARSER_OBJECTS) $(ELF_PARSER_OBJECTS)
+
+stringList.o: ../decuda_to_ptxplus/stringList.cc ../decuda_to_ptxplus/stringList.h
+ ${CXX} ${CXXFLAGS} -c -ostringList.o ../decuda_to_ptxplus/stringList.cc
+
+decudaInst.o: ../decuda_to_ptxplus/decudaInst.cc ../decuda_to_ptxplus/decudaInst.h ../decuda_to_ptxplus/stringList.h
+ ${CXX} ${CXXFLAGS} -c -odecudaInst.o ../decuda_to_ptxplus/decudaInst.cc
+
+decudaInstList.o: ../decuda_to_ptxplus/decudaInstList.cc ../decuda_to_ptxplus/decudaInstList.h ../decuda_to_ptxplus/decudaInst.h
+ ${CXX} ${CXXFLAGS} -c -odecudaInstList.o ../decuda_to_ptxplus/decudaInstList.cc
+
+cuobjdumpInst.o: cuobjdumpInst.cc cuobjdumpInst.h ../decuda_to_ptxplus/decudaInst.h ./decudaInstList.h
+ ${CXX} ${CXXFLAGS} -c -ocuobjdumpInst.o cuobjdumpInst.cc
+
+cuobjdumpInstList.o: cuobjdumpInstList.cc cuobjdumpInstList.h ../decuda_to_ptxplus/decudaInstList.h
+ ${CXX} ${CXXFLAGS} -c -ocuobjdumpInstList.o cuobjdumpInstList.cc
+
+#sassParser.cpp: sassParser.y ../distribution/decuda_to_ptxplus/decudaInstList.h cuobjdumpInstList.h
+# ${YACC} ${YFLAGS} -osassParser.cpp sassParser.y
+
+#sassParser.hpp: sassParser.cpp
+
+#sassLexer.cpp: sassLexer.l sassParser.hpp
+# ${LEX} ${LEXFLAGS} -osassLexer.cpp sassLexer.l
+
+headerParser.cpp : ../decuda_to_ptxplus/header.y ../decuda_to_ptxplus/decudaInstList.h
+ ${YACC} ${YFLAGS} --name-prefix=header_ -oheaderParser.cpp ../decuda_to_ptxplus/header.y
+
+headerParser.hpp : headerParser.cpp
+
+headerLexer.cpp : ../decuda_to_ptxplus/header.l headerParser.hpp
+ ${LEX} ${LEXFLAGS} -oheaderLexer.cpp ../decuda_to_ptxplus/header.l
+
+#sassLexer.o: sassLexer.cpp
+# ${CXX} ${CXXFLAGS} -c -Igenerated -osassLexer.o sassLexer.cpp
+#
+#sassParser.o: sassParser.cpp ../distribution/decuda_to_ptxplus/stringList.h ../distribution/decuda_to_ptxplus/decudaInst.h ../distribution/decuda_to_ptxplus/decudaInstList.h cuobjdumpInstList.h
+# ${CXX} ${CXXFLAGS} -c -Igenerated -osassParser.o sassParser.cpp
+
+headerLexer.o : headerLexer.cpp
+ ${CXX} ${CXXFLAGS} -c -Igenerated -oheaderLexer.o headerLexer.cpp
+
+headerParser.o : headerParser.cpp ../decuda_to_ptxplus/stringList.h ../decuda_to_ptxplus/decudaInst.h ./decudaInstList.h
+ ${CXX} ${CXXFLAGS} -c -Igenerated -oheaderParser.o headerParser.cpp
+
+decudaInstList.h : ../decuda_to_ptxplus/decudaInstList.h ./decudaInst.h
+ rm -f decudaInstList.h
+ ln -s ../decuda_to_ptxplus/decudaInstList.h decudaInstList.h
+
+decudaInst.h : ../decuda_to_ptxplus/decudaInst.h ./stringList.h
+ rm -f decudaInst.h
+ ln -s ../decuda_to_ptxplus/decudaInst.h decudaInst.h
+
+stringList.h : ../decuda_to_ptxplus/stringList.h
+ rm -f stringList.h
+ ln -s ../decuda_to_ptxplus/stringList.h stringList.h
+
+cuobjdump_to_ptxplus.o: cuobjdump_to_ptxplus.cc ../decuda_to_ptxplus/decudaInstList.h cuobjdumpInstList.h
+ ${CXX} ${CXXFLAGS} -c -ocuobjdump_to_ptxplus.o cuobjdump_to_ptxplus.cc
+
+lex.ptx_.c : ../src/cuda-sim/ptx.l
+ ${LEX} ${LEXFLAGS} ../src/cuda-sim/ptx.l
+
+ptx.tab.c : ../src/cuda-sim/ptx.y
+ ${YACC} ${YFLAGS} --name-prefix=ptx_ -v ../src/cuda-sim/ptx.y
+
+ptx.tab.h : ptx.tab.c
+
+lex.ptx_.o : lex.ptx_.c ptx.tab.h
+ rm -f opcodes.def opcodes.h
+ ln -s ../src/cuda-sim/opcodes.def opcodes.def
+ ln -s ../src/cuda-sim/opcodes.h opcodes.h
+ ${CXX} ${CXXFLAGS} -c lex.ptx_.c
+
+ptx.tab.o : ptx.tab.c ptx_parser.h
+ ${CXX} ${CXXFLAGS} -c ptx.tab.c
+
+.PRECIOUS: %.c %.h %_lexer.c %_parser.c %_parser.h %_parser.cpp %_parser.hpp %_lexer.cpp
+
+%_lexer.c: %.l %_parser.h
+ $(LEX) $(LEXFLAGS) -P $*_ -o$@ $<
+
+%_lexer.cpp: %.l %_parser.hpp
+ $(LEX) $(LEXFLAGS) -P $*_ -o$@ $<
+
+%_parser.c: %.y
+ $(YACC) $(YFLAGS) -p $*_ -o$@ $<
+
+%_parser.cpp: %.y
+ $(YACC) $(YFLAGS) -p $*_ -o$@ $<
+
+# The ':' is needed otherwise make gets confused and doesn't understand that it knows how to make %Parser.hpp from %Parser.cpp.
+# : in bash is equivalent to NOP (no operation)
+%_parser.h: %_parser.c
+ :
+
+%_parser.hpp: %_parser.cpp
+ :
+
+cuobjdump_parser.o: cuobjdump_parser.c
+ ${CC} ${CCFLAGS} -c -o $@ $<
+
+cuobjdump_lexer.o: cuobjdump_lexer.c
+ ${CC} ${CCFLAGS} -c -o $@ $<
+
+%.o: %.cpp
+ $(CXX) ${CXXFLAGS} -c -o $@ $<
+
+clean:
+ rm -f ./opcodes.def ./opcodes.h
+ rm -f ./lex.ptx_.c ./ptx.tab.c ./ptx.tab.h ./lex.ptx_.o ./ptx.tab.o ptx.output
+ rm -f ./decudaInstList.h ./decudaInst.h ./stringList.h
+ rm -f ./headerParser.o ./headerLexer.o ./headerParser.cpp ./headerParser.hpp ./headerLexer.cpp ./headerParser.output
+ rm -f ./stringList.o ./decudaInst.o ./decudaInstList.o
+ rm -f ./cuobjdumpInstList.o ./cuobjdumpInst.o
+ rm -f ./sass_lexer.o ./sass_parser.o ./cuobjdump_to_ptxplus.o
+ rm -f ./sass_parser.hpp ./sass_parser.output
+ rm -f ./sass_parser.cpp ./sass_lexer.cpp
+ rm -f ./cuobjdump_to_ptxplus
+ rm -f ./cuobjdump_parser.o ./cuobjdump_parser.c ./cuobjdump_parser.output ./cuobjdump_parser.h
+ rm -f ./cuobjdump_lexer.o ./cuobjdump_lexer.c
+ rm -f ./elf_lexer.o ./elf_parser.o ./elf_lexer.cpp ./elf_parser.cpp ./elf_parser.hpp ./elf_parser.output