Makefile 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. # Linux switches
  2. CFLAGS=-g -O0 -Wall -pedantic -Wextra
  3. # Mac OS: We don't use pedantic as Mac OS version of MySQL (5.5.24) does use long long (not part of ISO C++)
  4. #CFLAGS=-g -O0 -Wall -Wextra -I/opt/local/include
  5. # Mac OS does not require -lrt
  6. # Linux requires -lrt
  7. LDFLAGS=-lrt
  8. MEMFILE_CFLAGS=
  9. MEMFILE_LDFLAGS=
  10. # It is mysql_config on most Linux systems and mysql_config5 on Mac OS
  11. MYSQL_CONFIG=mysql_config
  12. MYSQL_CFLAGS=`$(MYSQL_CONFIG) --cflags`
  13. MYSQL_LDFLAGS=`$(MYSQL_CONFIG) --libs`
  14. SQLITE_CFLAGS=`pkg-config sqlite3 --cflags`
  15. SQLITE_LDFLAGS=`pkg-config sqlite3 --libs`
  16. all: mysql_ubench sqlite_ubench memfile_ubench
  17. doc: dhcp-perf-guide.html dhcp-perf-guide.pdf
  18. mysql_ubench.o: mysql_ubench.cc mysql_ubench.h benchmark.h
  19. $(CXX) $< -c $(CFLAGS) $(MYSQL_CFLAGS)
  20. benchmark.o: benchmark.cc benchmark.h
  21. $(CXX) $< -c $(CFLAGS) $(MYSQL_CFLAGS)
  22. mysql_ubench: mysql_ubench.o benchmark.o
  23. $(CXX) $< benchmark.o -o mysql_ubench $(CFLAGS) $(MYSQL_CFLAGS) $(LDFLAGS) $(MYSQL_LDFLAGS)
  24. sqlite_ubench.o: sqlite_ubench.cc sqlite_ubench.h benchmark.h
  25. $(CXX) $< -c $(CFLAGS) $(SQLLITE_CFLAGS)
  26. sqlite_ubench: sqlite_ubench.o benchmark.o
  27. $(CXX) $< benchmark.o -o sqlite_ubench $(CFLAGS) $(SQLITE_CFLAGS) $(LDFLAGS) $(SQLITE_LDFLAGS)
  28. memfile_ubench.o: memfile_ubench.cc memfile_ubench.h benchmark.h
  29. $(CXX) $< -c $(CFLAGS) $(MEMFILE_CFLAGS)
  30. memfile_ubench: memfile_ubench.o benchmark.o
  31. $(CXX) $< benchmark.o -o memfile_ubench $(LDFLAGS) $(MEMFILE_LDFLAGS)
  32. clean:
  33. rm -f mysql_ubench sqlite_ubench memfile_ubench *.o
  34. version.ent:
  35. ln -s ../../../doc/version.ent
  36. dhcp-perf-guide.html: dhcp-perf-guide.xml version.ent
  37. xsltproc --novalid --xinclude --nonet \
  38. -o $@ \
  39. --path ../../../doc \
  40. --stringparam section.autolabel 1 \
  41. --stringparam section.label.includes.component.label 1 \
  42. --stringparam html.stylesheet bind10-guide.css \
  43. http://docbook.sourceforge.net/release/xsl/current/html/docbook.xsl \
  44. dhcp-perf-guide.xml
  45. dhcp-perf-guide.pdf: dhcp-perf-guide.xml
  46. docbook2pdf $<