common.mk 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. #
  2. # Common for every unix flavour (any changes will be reflected on all platforms)
  3. #
  4. Platform :=$(TargetCPU)-$(OS)
  5. ConfigurationName :=Release
  6. IntermediateDirectory :=../temp/$(TargetCPU)
  7. OutDir := $(IntermediateDirectory)
  8. LinkerName :=$(CROSS_COMPILE)g++
  9. SharedObjectLinkerName :=$(CROSS_COMPILE)g++ -shared -fPIC
  10. DebugSwitch :=-gstab
  11. IncludeSwitch :=-I
  12. LibrarySwitch :=-l
  13. OutputSwitch :=-o
  14. LibraryPathSwitch :=-L
  15. PreprocessorSwitch :=-D
  16. SourceSwitch :=-c
  17. OutputFile :=../bin/$(Platform)/libsnap7.so
  18. PreprocessOnlySwitch :=-E
  19. ObjectsFileList :="filelist.txt"
  20. MakeDirCommand :=mkdir -p
  21. LinkOptions := -O3
  22. IncludePath := $(IncludeSwitch). $(IncludeSwitch)../../src/sys $(IncludeSwitch)../../src/core $(IncludeSwitch)../../src/lib
  23. Libs := $(LibrarySwitch)pthread $(LibrarySwitch)rt
  24. LibPath := $(LibraryPathSwitch).
  25. LibInstall := /usr/lib
  26. ##
  27. ## Common variables (CXXFLAGS varies across platforms)
  28. ##
  29. AR := $(CROSS_COMPILE)ar rcus
  30. CXX := $(CROSS_COMPILE)g++
  31. CC := $(CROSS_COMPILE)gcc
  32. CFLAGS := -L../../lib
  33. ##
  34. ## User defined environment variables
  35. ##
  36. Objects0=$(IntermediateDirectory)/sys_snap_msgsock.o $(IntermediateDirectory)/sys_snap_sysutils.o $(IntermediateDirectory)/sys_snap_tcpsrvr.o $(IntermediateDirectory)/sys_snap_threads.o $(IntermediateDirectory)/core_s7_client.o $(IntermediateDirectory)/core_s7_isotcp.o $(IntermediateDirectory)/core_s7_partner.o $(IntermediateDirectory)/core_s7_peer.o $(IntermediateDirectory)/core_s7_server.o $(IntermediateDirectory)/core_s7_text.o \
  37. $(IntermediateDirectory)/core_s7_micro_client.o $(IntermediateDirectory)/lib_snap7_libmain.o
  38. Objects=$(Objects0)
  39. ##
  40. ## Main Build Targets
  41. ##
  42. .PHONY: all clean install PreBuild PostBuild
  43. all: $(OutputFile)
  44. $(OutputFile): $(IntermediateDirectory)/.d $(Objects)
  45. @$(MakeDirCommand) $(@D)
  46. @$(MakeDirCommand) $(IntermediateDirectory)
  47. @echo $(Objects0) > $(ObjectsFileList)
  48. $(SharedObjectLinkerName) $(OutputSwitch)$(OutputFile) @$(ObjectsFileList) $(LibPath) $(Libs) $(LinkOptions)
  49. $(RM) $(ObjectsFileList)
  50. $(IntermediateDirectory)/.d:
  51. @test -d ../temp/$(TargetCPU) || $(MakeDirCommand) ../temp/$(TargetCPU)
  52. PreBuild:
  53. PostBuild:
  54. ##
  55. ## Objects
  56. ##
  57. $(IntermediateDirectory)/sys_snap_msgsock.o:
  58. $(CXX) $(SourceSwitch) "../../src/sys/snap_msgsock.cpp" $(CXXFLAGS) -o $(IntermediateDirectory)/sys_snap_msgsock.o $(IncludePath)
  59. $(IntermediateDirectory)/sys_snap_sysutils.o:
  60. $(CXX) $(SourceSwitch) "../../src/sys/snap_sysutils.cpp" $(CXXFLAGS) -o $(IntermediateDirectory)/sys_snap_sysutils.o $(IncludePath)
  61. $(IntermediateDirectory)/sys_snap_tcpsrvr.o:
  62. $(CXX) $(SourceSwitch) "../../src/sys/snap_tcpsrvr.cpp" $(CXXFLAGS) -o $(IntermediateDirectory)/sys_snap_tcpsrvr.o $(IncludePath)
  63. $(IntermediateDirectory)/sys_snap_threads.o:
  64. $(CXX) $(SourceSwitch) "../../src/sys/snap_threads.cpp" $(CXXFLAGS) -o $(IntermediateDirectory)/sys_snap_threads.o $(IncludePath)
  65. $(IntermediateDirectory)/core_s7_client.o:
  66. $(CXX) $(SourceSwitch) "../../src/core/s7_client.cpp" $(CXXFLAGS) -o $(IntermediateDirectory)/core_s7_client.o $(IncludePath)
  67. $(IntermediateDirectory)/core_s7_isotcp.o:
  68. $(CXX) $(SourceSwitch) "../../src/core/s7_isotcp.cpp" $(CXXFLAGS) -o $(IntermediateDirectory)/core_s7_isotcp.o $(IncludePath)
  69. $(IntermediateDirectory)/core_s7_partner.o:
  70. $(CXX) $(SourceSwitch) "../../src/core/s7_partner.cpp" $(CXXFLAGS) -o $(IntermediateDirectory)/core_s7_partner.o $(IncludePath)
  71. $(IntermediateDirectory)/core_s7_peer.o:
  72. $(CXX) $(SourceSwitch) "../../src/core/s7_peer.cpp" $(CXXFLAGS) -o $(IntermediateDirectory)/core_s7_peer.o $(IncludePath)
  73. $(IntermediateDirectory)/core_s7_server.o:
  74. $(CXX) $(SourceSwitch) "../../src/core/s7_server.cpp" $(CXXFLAGS) -o $(IntermediateDirectory)/core_s7_server.o $(IncludePath)
  75. $(IntermediateDirectory)/core_s7_text.o:
  76. $(CXX) $(SourceSwitch) "../../src/core/s7_text.cpp" $(CXXFLAGS) -o $(IntermediateDirectory)/core_s7_text.o $(IncludePath)
  77. $(IntermediateDirectory)/core_s7_micro_client.o:
  78. $(CXX) $(SourceSwitch) "../../src/core/s7_micro_client.cpp" $(CXXFLAGS) -o $(IntermediateDirectory)/core_s7_micro_client.o $(IncludePath)
  79. $(IntermediateDirectory)/lib_snap7_libmain.o:
  80. $(CXX) $(SourceSwitch) "../../src/lib/snap7_libmain.cpp" $(CXXFLAGS) -o $(IntermediateDirectory)/lib_snap7_libmain.o $(IncludePath)
  81. ##
  82. ## Clean / Install
  83. ##
  84. clean:
  85. $(RM) $(IntermediateDirectory)/*.o
  86. $(RM) $(OutputFile)
  87. install: all
  88. cp -f $(OutputFile) $(LibInstall)