makefile.vc 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. #------------------------------------------------------------- -*- makefile -*-
  2. #
  3. # makefile to build zint tcl extension
  4. #
  5. # Basic build and install
  6. # nmake /f makefile.vc INSTALLDIR=c:\path\to\tcl
  7. # nmake /f makefile.vc INSTALLDIR=c:\path\to\tcl install
  8. #
  9. # The options TCLDIR= and TKDIR= may be added, if the TCL/Tk installation
  10. # (or source) is not automatically located.
  11. #
  12. # For other build options (debug, static etc.),
  13. # See TIP 477 (https://core.tcl-lang.org/tips/doc/main/tip/477.md) for
  14. # detailed documentation.
  15. #
  16. # See the file "license.terms" for information on usage and redistribution
  17. # of this file, and for a DISCLAIMER OF ALL WARRANTIES.
  18. #
  19. #------------------------------------------------------------------------------
  20. # The name of the package
  21. PROJECT = zint
  22. PROJECT_REQUIRES_TK = 1
  23. # Generic source is in root build folder (1 up)
  24. GENERICDIR = ..
  25. # Access the generic backend files
  26. BACKEND_DIR = $(ROOT)\..\backend
  27. !include "rules-ext.vc"
  28. # Define the object files and resource file that make up the extension.
  29. # Note the resource file does not makes sense if doing a static library build
  30. # hence it is under that condition. TMP_DIR is the output directory
  31. # defined by rules for object files.
  32. PRJ_OBJS = \
  33. $(TMP_DIR)\zint.obj \
  34. $(TMP_DIR)\2of5.obj \
  35. $(TMP_DIR)\auspost.obj \
  36. $(TMP_DIR)\aztec.obj \
  37. $(TMP_DIR)\bc412.obj \
  38. $(TMP_DIR)\bmp.obj \
  39. $(TMP_DIR)\codablock.obj \
  40. $(TMP_DIR)\code128.obj \
  41. $(TMP_DIR)\code16k.obj \
  42. $(TMP_DIR)\code1.obj \
  43. $(TMP_DIR)\code49.obj \
  44. $(TMP_DIR)\code.obj \
  45. $(TMP_DIR)\common.obj \
  46. $(TMP_DIR)\composite.obj \
  47. $(TMP_DIR)\dllversion.obj \
  48. $(TMP_DIR)\dmatrix.obj \
  49. $(TMP_DIR)\dotcode.obj \
  50. $(TMP_DIR)\dxfilmedge.obj \
  51. $(TMP_DIR)\eci.obj \
  52. $(TMP_DIR)\emf.obj \
  53. $(TMP_DIR)\filemem.obj \
  54. $(TMP_DIR)\general_field.obj \
  55. $(TMP_DIR)\gif.obj \
  56. $(TMP_DIR)\gridmtx.obj \
  57. $(TMP_DIR)\gs1.obj \
  58. $(TMP_DIR)\hanxin.obj \
  59. $(TMP_DIR)\imail.obj \
  60. $(TMP_DIR)\large.obj \
  61. $(TMP_DIR)\library.obj \
  62. $(TMP_DIR)\mailmark.obj \
  63. $(TMP_DIR)\maxicode.obj \
  64. $(TMP_DIR)\medical.obj \
  65. $(TMP_DIR)\output.obj \
  66. $(TMP_DIR)\pcx.obj \
  67. $(TMP_DIR)\pdf417.obj \
  68. $(TMP_DIR)\plessey.obj \
  69. $(TMP_DIR)\png.obj \
  70. $(TMP_DIR)\postal.obj \
  71. $(TMP_DIR)\ps.obj \
  72. $(TMP_DIR)\qr.obj \
  73. $(TMP_DIR)\raster.obj \
  74. $(TMP_DIR)\reedsol.obj \
  75. $(TMP_DIR)\rss.obj \
  76. $(TMP_DIR)\svg.obj \
  77. $(TMP_DIR)\telepen.obj \
  78. $(TMP_DIR)\tif.obj \
  79. $(TMP_DIR)\ultra.obj \
  80. $(TMP_DIR)\upcean.obj \
  81. $(TMP_DIR)\vector.obj
  82. # Define any additional compiler flags that might be required for the project
  83. PRJ_DEFINES = -D_CRT_SECURE_NO_DEPRECATE
  84. PRJ_DEFINES = $(PRJ_DEFINES) -DZINT_NO_PNG=1
  85. # PRJ_DEFINES = $(PRJ_DEFINES) -DZINT_VERSION=PACKAGE_VERSION
  86. PRJ_DEFINES = $(PRJ_DEFINES) -I$(TMP_DIR)
  87. PRJ_DEFINES = $(PRJ_DEFINES) -I$(BACKEND_DIR)
  88. # Define the standard targets
  89. !include "$(_RULESDIR)\targets.vc"
  90. # We must define a pkgindex target that will create a pkgIndex.tcl
  91. # file in the $(OUT_DIR) directory. We can just redirect to the
  92. # default-pkgindex target for our sample extension.
  93. pkgindex: default-pkgindex
  94. $(ROOT)\manifest.uuid:
  95. copy $(WIN_DIR)\gitmanifest.in $(ROOT)\manifest.uuid
  96. git rev-parse HEAD >>$(ROOT)\manifest.uuid
  97. $(TMP_DIR)\zintUuid.h: $(ROOT)\manifest.uuid
  98. copy $(WIN_DIR)\zintUuid.h.in+$(ROOT)\manifest.uuid $(TMP_DIR)\zintUuid.h
  99. # The default install target only installs binaries and scripts so add
  100. # an additional target for our documentation. Note this *adds* a target
  101. # since no commands are listed after it. The original targets for
  102. # install (from targets.vc) will remain.
  103. # install: default-install-docs-n
  104. # Explicit dependency rules
  105. $(GENERICDIR)\zint.c : $(TMP_DIR)\zintUuid.h
  106. {$(BACKEND_DIR)}.c{$(TMP_DIR)}.obj::
  107. $(cc32) $(pkgcflags) -Fo$(TMP_DIR)\ @<<
  108. $<
  109. <<