Tcl Extension Architecture (TEA) Sample Extension

Check-in [f5f3d48f4e]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Moved pkgindex to rules and cleaned up
Downloads: Tarball | ZIP archive
Timelines: family | ancestors | descendants | both | vc-reform
Files: files | file ages | folders
SHA1: f5f3d48f4e92bb244d88dbf2af4cac1741c89e33
User & Date: ashok 2017-10-05 17:07:15.954
Context
2017-10-06
13:43
Use standard targets from targets.vc check-in: 9107449556 user: ashok tags: vc-reform
2017-10-05
17:07
Moved pkgindex to rules and cleaned up check-in: f5f3d48f4e user: ashok tags: vc-reform
2017-10-04
13:36
Use macros and targets from reworked rules.vc check-in: e2ca4bafe0 user: ashok tags: vc-reform
Changes
Side-by-Side Diff Ignore Whitespace Patch
Changes to generic/sample.h.
23
24
25
26
27
28
29

30
31
32
33
34
35
36
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37







+







#else
#   if ((1<<31)<0)
typedef unsigned long sha_uint32_t;
#   else
typedef unsigned int sha_uint32_t;
#   endif
#endif


/*
 * For C++ compilers, use extern "C"
 */

#ifdef __cplusplus
extern "C" {
Changes to win/makefile.vc.
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153

154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169




170
171
172
173
174
175
176
177

178
179
180
181

182
183

184
185
186
187

188
189
190
191
192
193
194
195
196

197



198
199
200
201
202
203
204

205
206
207
208
209
210
211
212
213
214

215
216
217
218
219
220
221
222
223
224
225
226


227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
135
136
137
138
139
140
141












142










143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159

160




161
162

163




164









165
166
167
168
169
170
171
172
173
174


175










176












177
178






















179
180
181
182
183
184
185







-
-
-
-
-
-
-
-
-
-
-
-
+
-
-
-
-
-
-
-
-
-
-






+
+
+
+







-
+
-
-
-
-
+

-
+
-
-
-
-
+
-
-
-
-
-
-
-
-
-
+

+
+
+





-
-
+
-
-
-
-
-
-
-
-
-
-
+
-
-
-
-
-
-
-
-
-
-
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-







#       Targeting Windows pre64 RETAIL
#       c:\tcl_src\win\>nmake -f makefile.vc MACHINE=IA64
#
#------------------------------------------------------------------------------
#==============================================================================
#------------------------------------------------------------------------------

!if !exist("makefile.vc")
MSG = ^
You must run this makefile only from the directory it is in.^
Please `cd` to its location first.
!error $(MSG)
!endif

#-------------------------------------------------------------------------
# Project specific information (EDIT)
#
# You should edit this with the name and version of your project. This
# information is used to generate the name of the package library and
# The name of the package
# it's install location.
#
# For example, the sample extension is  going to build sample05.dll and
# would install it into $(INSTALLDIR)\lib\sample05
#
# You need to specify the object files that need to be linked into your
# binary here.
#
#-------------------------------------------------------------------------

PROJECT = sample

# Uncomment the following line if this is a Tk extension.
#PROJECT_REQUIRES_TK=1
!include "rules-ext.vc"

# Define the object files and resource file that make up the extension.
# Note the resource file does not makes sense if doing a static library build
# hence it is under that condition. TMP_DIR is the output directory
# defined by rules for object files.
PRJ_OBJS = \
	$(TMP_DIR)\tclsample.obj \
	$(TMP_DIR)\sample.obj \
!if !$(STATIC_BUILD)
	$(TMP_DIR)\sample.res
!endif

# Additional compiler defines needed for this project
# Define any additional compiler flags that might be required for the project
PRJ_DEFINES = -DMODULE_SCOPE=extern \
	      -DPACKAGE_NAME="\"$(PROJECT)\"" \
              -DPACKAGE_VERSION="\"$(DOTVERSION)\"" \
              -D_CRT_SECURE_NO_WARNINGS
PRJ_DEFINES = -D_CRT_SECURE_NO_DEPRECATE


# Default target is all which in turn uses the setup and pkgindex generation
#---------------------------------------------------------------------
# TclTest flags
#---------------------------------------------------------------------

# targets from rules.
!if "$(TESTPAT)" != ""
TESTFLAGS = $(TESTFLAGS) -file $(TESTPAT)
!endif

#---------------------------------------------------------------------
# Project specific targets (EDIT)
#---------------------------------------------------------------------

all:	    setup pkgIndex $(PRJLIB)
all:	    setup pkgindex $(PRJLIB)

# MAKEBINCMD will do shared, static and debug links as appropriate
# _VC_MANIFEST_EMBED_DLL embeds the manifest for shared libraries
# and is a no-op for static libraries
$(PRJLIB): $(PRJ_OBJS)
       $(MAKEBINCMD) $**
       $(_VC_MANIFEST_EMBED_DLL)
       -@del $*.exp

pkgIndex:   $(OUT_DIR)\pkgIndex.tcl

# The default install target only installs binaries and scripts so add
test: setup $(PROJECT)
	@set TCL_LIBRARY=$(TCL_LIBRARY:\=/)
	@set TCLLIBPATH=$(OUT_DIR_PATH:\=/)
!if $(TCLINSTALL)
	@set PATH=$(_TCLDIR)\bin;$(PATH)
!else
	@set PATH=$(_TCLDIR)\win\$(BUILDDIRTOP);$(PATH)
!endif
	$(DEBUGGER) $(TCLSH) "$(ROOT)/tests/all.tcl" $(TESTFLAGS)

# an additional target for our documentation. Note this *adds* a target
shell: setup $(PROJECT)
	@set VLERQ_LIBRARY=$(LIBDIR:\=/)
	@set TCL_LIBRARY=$(TCL_LIBRARY:\=/)
	@set TCLLIBPATH=$(OUT_DIR_PATH:\=/)
!if $(TCLINSTALL)
	@set PATH=$(_TCLDIR)\bin;$(PATH)
!else
	@set PATH=$(_TCLDIR)\win\$(BUILDDIRTOP);$(PATH)
!endif
	$(DEBUGGER) $(TCLSH) $(SCRIPT)


# since no commands are listed after it. The original targets for
# install (from rules.vc) will remain.
#-------------------------------------------------------------------------
# Explicit dependency rules
#
#-------------------------------------------------------------------------

$(OUT_DIR)\pkgIndex.tcl: $(ROOT)\pkgIndex.tcl.in
	@nmakehlp -s << $** > $@
@PACKAGE_VERSION@    $(DOTVERSION)
@PACKAGE_NAME@       $(PROJECT)
@PKG_LIB_FILE@       $(PRJLIBNAME)
<<
	@echo package ifneeded sample $(DOTVERSION) \
	    [list load [file join $$dir $(PRJLIBNAME)] Sample] >> $@

#---------------------------------------------------------------------
# Installation. (EDIT)
#
# You may need to modify this section to reflect the final distribution
# of your files and possibly to generate documentation.
#
#---------------------------------------------------------------------

install: install-docs

install-docs:
	@echo Installing documentation files to '$(DOC_INSTALL_DIR)'
	@if exist $(DOCDIR) $(CPY) $(DOCDIR)\*.n "$(DOC_INSTALL_DIR)"