diff --git a/Makefile b/Makefile index 5f827bcb1..a9cd0ce81 100644 --- a/Makefile +++ b/Makefile @@ -1,89 +1,184 @@ -TMPSRCS=checkbufferoverrun.cpp checkclass.cpp checkheaders.cpp checkmemoryleak.cpp checkfunctionusage.cpp checkother.cpp filelister.cpp preprocessor.cpp tokenize.cpp cppcheck.cpp settings.cpp token.cpp cppcheckexecutor.cpp errormessage.cpp -SRCS=$(TMPSRCS:%=src/%) -OBJS=$(SRCS:%.cpp=%.o) -TMPTESTS=testbufferoverrun.o testcharvar.o testclass.o testconstructors.o testdivision.o testfunctionusage.o testincompletestatement.o testother.o testmemleak.o testmemleakmp.o testpreprocessor.o testredundantif.o testsimplifytokens.o testtokenize.o testtoken.o testunusedprivfunc.o testunusedvar.o testfilelister.o -TESTS=$(TMPTESTS:%=test/%) -BIN = ${DESTDIR}/usr/bin -CFLAGS = -Wall -pedantic -g +CXXFLAGS=-Wall -pedantic -g -all: ${OBJS} src/main.o - g++ $(CFLAGS) -o cppcheck $^ -test: ${OBJS} test/testrunner.o test/testsuite.o ${TESTS} - g++ $(CFLAGS) -o testrunner $^ -cppcheckexecutor.o: src/cppcheckexecutor.cpp src/cppcheckexecutor.h src/cppcheck.h src/errorlogger.h - g++ $(CFLAGS) -c $*.cpp -cppcheck.o: src/cppcheck.cpp src/cppcheck.h src/settings.h src/errorlogger.h src/preprocessor.h src/tokenize.h src/token.h src/checkmemoryleak.h src/checkbufferoverrun.h src/checkclass.h src/checkheaders.h src/checkother.h src/checkfunctionusage.h src/filelister.h - g++ $(CFLAGS) -c $*.cpp -main.o: src/main.cpp src/cppcheck.h src/settings.h src/errorlogger.h - g++ $(CFLAGS) -c $*.cpp -checkbufferoverrun.o: src/checkbufferoverrun.cpp src/checkbufferoverrun.h src/tokenize.h src/settings.h src/errorlogger.h src/token.h - g++ $(CFLAGS) -c $*.cpp -checkclass.o: src/checkclass.cpp src/checkclass.h src/tokenize.h src/settings.h src/errorlogger.h src/token.h - g++ $(CFLAGS) -c $*.cpp -checkfunctionusage.o: src/checkfunctionusage.cpp src/checkfunctionusage.h src/tokenize.h src/settings.h src/errorlogger.h src/token.h - g++ $(CFLAGS) -c $*.cpp -checkheaders.o: src/checkheaders.cpp src/checkheaders.h src/tokenize.h src/settings.h src/errorlogger.h src/token.h - g++ $(CFLAGS) -c $*.cpp -checkmemoryleak.o: src/checkmemoryleak.cpp src/checkmemoryleak.h src/tokenize.h src/settings.h src/errorlogger.h src/token.h - g++ $(CFLAGS) -c $*.cpp -checkother.o: src/checkother.cpp src/checkother.h src/tokenize.h src/settings.h src/errorlogger.h src/token.h - g++ $(CFLAGS) -c $*.cpp -filelister.o: src/filelister.cpp src/filelister.h - g++ $(CFLAGS) -c $*.cpp -preprocessor.o: src/preprocessor.cpp src/preprocessor.h src/errorlogger.h src/token.h src/tokenize.h - g++ $(CFLAGS) -c $*.cpp -settings.o: src/settings.cpp src/settings.h - g++ $(CFLAGS) -c $*.cpp -errormessage.o: src/errormessage.cpp src/errormessage.h - g++ $(CFLAGS) -c $*.cpp -testbufferoverrun.o: test/testbufferoverrun.cpp src/tokenize.h src/settings.h src/errorlogger.h src/token.h src/checkbufferoverrun.h test/testsuite.h - g++ $(CFLAGS) -c $*.cpp -testcharvar.o: test/testcharvar.cpp src/tokenize.h src/settings.h src/errorlogger.h src/token.h src/checkother.h test/testsuite.h - g++ $(CFLAGS) -c $*.cpp -testclass.o: test/testclass.cpp src/tokenize.h src/settings.h src/errorlogger.h src/token.h src/checkclass.h test/testsuite.h - g++ $(CFLAGS) -c $*.cpp -testconstructors.o: test/testconstructors.cpp src/tokenize.h src/settings.h src/errorlogger.h src/token.h src/checkclass.h test/testsuite.h - g++ $(CFLAGS) -c $*.cpp -testdivision.o: test/testdivision.cpp src/tokenize.h src/settings.h src/errorlogger.h src/token.h src/checkother.h test/testsuite.h - g++ $(CFLAGS) -c $*.cpp -testfunctionusage.o: test/testfunctionusage.cpp src/tokenize.h src/settings.h src/errorlogger.h src/token.h test/testsuite.h src/checkfunctionusage.h - g++ $(CFLAGS) -c $*.cpp -testincompletestatement.o: test/testincompletestatement.cpp test/testsuite.h src/errorlogger.h src/tokenize.h src/settings.h src/token.h src/checkother.h - g++ $(CFLAGS) -c $*.cpp -testother.o: test/testother.cpp test/testsuite.h src/errorlogger.h src/tokenize.h src/settings.h src/token.h src/checkother.h - g++ $(CFLAGS) -c $*.cpp -testmemleak.o: test/testmemleak.cpp src/tokenize.h src/settings.h src/errorlogger.h src/token.h src/checkmemoryleak.h test/testsuite.h - g++ $(CFLAGS) -c $*.cpp -testmemleakmp.o: test/testmemleakmp.cpp src/tokenize.h src/settings.h src/errorlogger.h src/token.h src/checkmemoryleak.h test/testsuite.h - g++ $(CFLAGS) -c $*.cpp -testpreprocessor.o: test/testpreprocessor.cpp test/testsuite.h src/errorlogger.h src/preprocessor.h - g++ $(CFLAGS) -c $*.cpp -testredundantif.o: test/testredundantif.cpp test/testsuite.h src/errorlogger.h src/checkother.h - g++ $(CFLAGS) -c $*.cpp -testrunner.o: test/testrunner.cpp test/testsuite.h src/errorlogger.h - g++ $(CFLAGS) -c $*.cpp -testsimplifytokens.o: test/testsimplifytokens.cpp test/testsuite.h src/errorlogger.h src/tokenize.h src/settings.h src/token.h - g++ $(CFLAGS) -c $*.cpp -testsuite.o: test/testsuite.cpp test/testsuite.h src/errorlogger.h - g++ $(CFLAGS) -c $*.cpp -testtoken.o: test/testtoken.cpp test/testsuite.h src/errorlogger.h src/token.h - g++ $(CFLAGS) -c $*.cpp -testtokenize.o: test/testtokenize.cpp test/testsuite.h src/errorlogger.h src/tokenize.h src/settings.h src/token.h - g++ $(CFLAGS) -c $*.cpp -testunusedprivfunc.o: test/testunusedprivfunc.cpp src/tokenize.h src/settings.h src/errorlogger.h src/token.h src/checkclass.h test/testsuite.h - g++ $(CFLAGS) -c $*.cpp -testunusedvar.o: test/testunusedvar.cpp test/testsuite.h src/errorlogger.h src/tokenize.h src/settings.h src/token.h src/checkother.h - g++ $(CFLAGS) -c $*.cpp -testfilelister.o: test/testfilelister.cpp src/filelister.h - g++ $(CFLAGS) -c $*.cpp -token.o: src/token.cpp src/token.h - g++ $(CFLAGS) -c $*.cpp -tokenize.o: src/tokenize.cpp src/tokenize.h src/settings.h src/errorlogger.h src/token.h src/filelister.h - g++ $(CFLAGS) -c $*.cpp + +###### Object Files + +OBJECTS = src/checkbufferoverrun.o \ + src/checkclass.o \ + src/checkfunctionusage.o \ + src/checkheaders.o \ + src/checkmemoryleak.o \ + src/checkother.o \ + src/cppcheck.o \ + src/cppcheckexecutor.o \ + src/errormessage.o \ + src/filelister.o \ + src/main.o \ + src/preprocessor.o \ + src/settings.o \ + src/token.o \ + src/tokenize.o + +TESTOBJ = test/testbufferoverrun.o \ + test/testcharvar.o \ + test/testclass.o \ + test/testconstructors.o \ + test/testdivision.o \ + test/testfilelister.o \ + test/testfunctionusage.o \ + test/testincompletestatement.o \ + test/testmemleak.o \ + test/testmemleakmp.o \ + test/testother.o \ + test/testpreprocessor.o \ + test/testredundantif.o \ + test/testrunner.o \ + test/testsimplifytokens.o \ + test/testsuite.o \ + test/testtoken.o \ + test/testtokenize.o \ + test/testunusedprivfunc.o \ + test/testunusedvar.o \ + src/checkbufferoverrun.o \ + src/checkclass.o \ + src/checkfunctionusage.o \ + src/checkheaders.o \ + src/checkmemoryleak.o \ + src/checkother.o \ + src/cppcheck.o \ + src/cppcheckexecutor.o \ + src/errormessage.o \ + src/filelister.o \ + src/preprocessor.o \ + src/settings.o \ + src/token.o \ + src/tokenize.o + + +###### Targets + +cppcheck: $(OBJECTS) + g++ $(CXXFLAGS) -o cppcheck $(OBJECTS) + +testrunner: $(TESTOBJ) + g++ $(CXXFLAGS) -o testrunner $(TESTOBJ) + +all: cppcheck testrunner + +test: testrunner clean: rm -f src/*.o test/*.o testrunner cppcheck + install: cppcheck install -d ${BIN} install cppcheck ${BIN} + +###### Build + +src/checkbufferoverrun.o: src/checkbufferoverrun.cpp src/checkbufferoverrun.h src/tokenize.h src/settings.h src/errorlogger.h src/token.h + g++ $(CXXFLAGS) -c -o src/checkbufferoverrun.o src/checkbufferoverrun.cpp + +src/checkclass.o: src/checkclass.cpp src/checkclass.h src/tokenize.h src/settings.h src/errorlogger.h src/token.h + g++ $(CXXFLAGS) -c -o src/checkclass.o src/checkclass.cpp + +src/checkfunctionusage.o: src/checkfunctionusage.cpp src/checkfunctionusage.h src/tokenize.h src/settings.h src/errorlogger.h src/token.h + g++ $(CXXFLAGS) -c -o src/checkfunctionusage.o src/checkfunctionusage.cpp + +src/checkheaders.o: src/checkheaders.cpp src/checkheaders.h src/tokenize.h src/settings.h src/errorlogger.h src/token.h + g++ $(CXXFLAGS) -c -o src/checkheaders.o src/checkheaders.cpp + +src/checkmemoryleak.o: src/checkmemoryleak.cpp src/checkmemoryleak.h src/tokenize.h src/settings.h src/errorlogger.h src/token.h + g++ $(CXXFLAGS) -c -o src/checkmemoryleak.o src/checkmemoryleak.cpp + +src/checkother.o: src/checkother.cpp src/checkother.h src/tokenize.h src/settings.h src/errorlogger.h src/token.h + g++ $(CXXFLAGS) -c -o src/checkother.o src/checkother.cpp + +src/cppcheck.o: src/cppcheck.cpp src/cppcheck.h src/settings.h src/errorlogger.h src/checkfunctionusage.h src/tokenize.h src/token.h src/preprocessor.h src/checkmemoryleak.h src/checkbufferoverrun.h src/checkclass.h src/checkheaders.h src/checkother.h src/filelister.h + g++ $(CXXFLAGS) -c -o src/cppcheck.o src/cppcheck.cpp + +src/cppcheckexecutor.o: src/cppcheckexecutor.cpp src/cppcheckexecutor.h src/errorlogger.h src/cppcheck.h src/settings.h src/checkfunctionusage.h src/tokenize.h src/token.h + g++ $(CXXFLAGS) -c -o src/cppcheckexecutor.o src/cppcheckexecutor.cpp + +src/errormessage.o: src/errormessage.cpp src/errormessage.h + g++ $(CXXFLAGS) -c -o src/errormessage.o src/errormessage.cpp + +src/filelister.o: src/filelister.cpp src/filelister.h + g++ $(CXXFLAGS) -c -o src/filelister.o src/filelister.cpp + +src/main.o: src/main.cpp src/cppcheckexecutor.h src/errorlogger.h + g++ $(CXXFLAGS) -c -o src/main.o src/main.cpp + +src/preprocessor.o: src/preprocessor.cpp src/preprocessor.h src/tokenize.h src/settings.h src/errorlogger.h src/token.h + g++ $(CXXFLAGS) -c -o src/preprocessor.o src/preprocessor.cpp + +src/settings.o: src/settings.cpp src/settings.h + g++ $(CXXFLAGS) -c -o src/settings.o src/settings.cpp + +src/token.o: src/token.cpp src/token.h + g++ $(CXXFLAGS) -c -o src/token.o src/token.cpp + +src/tokenize.o: src/tokenize.cpp src/tokenize.h src/settings.h src/errorlogger.h src/token.h src/filelister.h + g++ $(CXXFLAGS) -c -o src/tokenize.o src/tokenize.cpp + +test/testbufferoverrun.o: test/testbufferoverrun.cpp src/tokenize.h src/settings.h src/errorlogger.h src/token.h src/checkbufferoverrun.h test/testsuite.h + g++ $(CXXFLAGS) -c -o test/testbufferoverrun.o test/testbufferoverrun.cpp + +test/testcharvar.o: test/testcharvar.cpp src/tokenize.h src/settings.h src/errorlogger.h src/token.h src/checkother.h test/testsuite.h + g++ $(CXXFLAGS) -c -o test/testcharvar.o test/testcharvar.cpp + +test/testclass.o: test/testclass.cpp src/tokenize.h src/settings.h src/errorlogger.h src/token.h src/checkclass.h test/testsuite.h + g++ $(CXXFLAGS) -c -o test/testclass.o test/testclass.cpp + +test/testconstructors.o: test/testconstructors.cpp src/tokenize.h src/settings.h src/errorlogger.h src/token.h src/checkclass.h test/testsuite.h + g++ $(CXXFLAGS) -c -o test/testconstructors.o test/testconstructors.cpp + +test/testdivision.o: test/testdivision.cpp src/tokenize.h src/settings.h src/errorlogger.h src/token.h src/checkother.h test/testsuite.h + g++ $(CXXFLAGS) -c -o test/testdivision.o test/testdivision.cpp + +test/testfilelister.o: test/testfilelister.cpp test/testsuite.h src/errorlogger.h src/filelister.h + g++ $(CXXFLAGS) -c -o test/testfilelister.o test/testfilelister.cpp + +test/testfunctionusage.o: test/testfunctionusage.cpp src/tokenize.h src/settings.h src/errorlogger.h src/token.h test/testsuite.h src/checkfunctionusage.h + g++ $(CXXFLAGS) -c -o test/testfunctionusage.o test/testfunctionusage.cpp + +test/testincompletestatement.o: test/testincompletestatement.cpp test/testsuite.h src/errorlogger.h src/tokenize.h src/settings.h src/token.h src/checkother.h + g++ $(CXXFLAGS) -c -o test/testincompletestatement.o test/testincompletestatement.cpp + +test/testmemleak.o: test/testmemleak.cpp src/tokenize.h src/settings.h src/errorlogger.h src/token.h src/checkmemoryleak.h test/testsuite.h + g++ $(CXXFLAGS) -c -o test/testmemleak.o test/testmemleak.cpp + +test/testmemleakmp.o: test/testmemleakmp.cpp src/tokenize.h src/settings.h src/errorlogger.h src/token.h src/checkmemoryleak.h test/testsuite.h + g++ $(CXXFLAGS) -c -o test/testmemleakmp.o test/testmemleakmp.cpp + +test/testother.o: test/testother.cpp src/tokenize.h src/settings.h src/errorlogger.h src/token.h src/checkother.h test/testsuite.h + g++ $(CXXFLAGS) -c -o test/testother.o test/testother.cpp + +test/testpreprocessor.o: test/testpreprocessor.cpp test/testsuite.h src/errorlogger.h src/preprocessor.h + g++ $(CXXFLAGS) -c -o test/testpreprocessor.o test/testpreprocessor.cpp + +test/testredundantif.o: test/testredundantif.cpp src/tokenize.h src/settings.h src/errorlogger.h src/token.h src/checkother.h test/testsuite.h + g++ $(CXXFLAGS) -c -o test/testredundantif.o test/testredundantif.cpp + +test/testrunner.o: test/testrunner.cpp test/testsuite.h src/errorlogger.h + g++ $(CXXFLAGS) -c -o test/testrunner.o test/testrunner.cpp + +test/testsimplifytokens.o: test/testsimplifytokens.cpp test/testsuite.h src/errorlogger.h src/tokenize.h src/settings.h src/token.h + g++ $(CXXFLAGS) -c -o test/testsimplifytokens.o test/testsimplifytokens.cpp + +test/testsuite.o: test/testsuite.cpp test/testsuite.h src/errorlogger.h + g++ $(CXXFLAGS) -c -o test/testsuite.o test/testsuite.cpp + +test/testtoken.o: test/testtoken.cpp test/testsuite.h src/errorlogger.h src/token.h + g++ $(CXXFLAGS) -c -o test/testtoken.o test/testtoken.cpp + +test/testtokenize.o: test/testtokenize.cpp test/testsuite.h src/errorlogger.h src/tokenize.h src/settings.h src/token.h + g++ $(CXXFLAGS) -c -o test/testtokenize.o test/testtokenize.cpp + +test/testunusedprivfunc.o: test/testunusedprivfunc.cpp src/tokenize.h src/settings.h src/errorlogger.h src/token.h src/checkclass.h test/testsuite.h + g++ $(CXXFLAGS) -c -o test/testunusedprivfunc.o test/testunusedprivfunc.cpp + +test/testunusedvar.o: test/testunusedvar.cpp test/testsuite.h src/errorlogger.h src/tokenize.h src/settings.h src/token.h src/checkother.h + g++ $(CXXFLAGS) -c -o test/testunusedvar.o test/testunusedvar.cpp + diff --git a/tools/dmake.cpp b/tools/dmake.cpp index b01ea0a40..15fc15aa1 100644 --- a/tools/dmake.cpp +++ b/tools/dmake.cpp @@ -78,6 +78,11 @@ int main() fout << "\tg++ $(CXXFLAGS) -o testrunner $(TESTOBJ)\n\n"; fout << "all:\tcppcheck\ttestrunner\n\n"; fout << "test:\ttestrunner\n\n"; + fout << "clean:\n"; + fout << "\trm -f src/*.o test/*.o testrunner cppcheck\n\n"; + fout << "install:\tcppcheck\n"; + fout << "\tinstall -d ${BIN}\n"; + fout << "\tinstall cppcheck ${BIN}\n\n"; fout << "\n###### Build\n\n";