VASmalltalk – Primitives – makefile

Ein Wort zum “makefile”, um eine Bibliothek mit Primitives zu erzeugen. Im “primitiv”-Unterverzeichnis von “samples” findet man es. Wie immer. Und wie auch immer mit jeder neuen Version von VASmalltalk kann man das Teil nicht so übernehmen, weil dort irgendwelche Sachen drinne sind, die NICHT mit ausgeliefert werden.

Also hier mein “makefile”. Meine Primitives sind immer in EINER C-Quelltextdatei. Hier meine korrigierte Version des “makefile”:

# Makefile for module 'sample'
# (C) Copyright Instantiations 1994, 2011.
# Timestamp: 4.0, 1/25/2011
#
# Autogenerated Code

APPVER=5.0# Windows 2000
NODEBUG=
!include 

DLLNAME=mskcldtprim.dll# declaration

LIBNAME=mskcldtprim.lib# declaration

EXPNAME=mskcldtprim.exp# declaration

.c.obj:
	$(cc) $(cflags) $(cvarsmt) $(cdebug) -D_CRT_SECURE_NO_DEPRECATE /I..\include $(VMDEBUG) $*.c

.asm.obj:
	ml /c /Cp /W3 /nologo /coff /Zm $(VMASMDEBUG)  $<

.rc.res:
	rc /i ..\include $templrf
	echo $(BUILDFILES1) >>templrf
	$(implib) @templrf
	del templrf

$(DLLNAME): \
	$(LIBNAME) $(BUILDFILES1) $(VIRTFILES1) $(MDLLIBFILES1) 
	echo /MAP /MAPINFO:EXPORTS /OUT:$@ $(dlllflags) $(ldebug) $(VMLINK) >templrf
	echo $(BUILDFILES1)  >>templrf
	echo $(MDLLIBFILES1) >>templrf
	echo $(guilibsmt) $(EXPNAME) >>templrf
	$(link) @templrf
	del templrf

Dazu gehört dann noch eine “export”-Datei in der alle Namen aller Primitives aufgelistet sind. In der obigen Datei müssen alle Vorkommen von “mskcldtprim” ersetzt werden durch Eure C-Datei.

Unter Windows sollte man dann noch ein VisualStudio 2010 installiert haben. Dann kann man sich einen “VisualStudio Command Prompt (2010)” holen, wechselt in das Projektverzeichnis und führt ein einfaches “nmake” aus. Das erzeugt dann die Shared-Library, die man sich dann z.B. nach “image803” kopiert und unter Smalltalk nutzen kann.

This entry was posted in Smalltalk and tagged , , , . Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s