bc.mak
author convert-repo
Fri, 20 Dec 2019 04:29:09 +0000
changeset 1619 71f3cbb5c172
parent 1612 1fa5fcfe1987
permissions -rw-r--r--
update tags

# $Header$
#
# DO NOT EDIT
# automagically generated from the projectDefinition: stx_projects_smalltalk at 2012-01-20 12:23:14.604.
#
# Warning: once you modify this file, do not rerun
# stmkmp or projectDefinition-build again - otherwise, your changes are lost.
#
# Historic Note:
#  this used to contain only rules to make with borland
#    (called via bmake, by "make.exe -f bc.mak")
#  this has changed; it is now also possible to build using microsoft visual c
#    (called via vcmake, by "make.exe -f bc.mak -DUSEVC")
#

TOP=..\..
INCLUDE_TOP=$(TOP)\..

# CFLAGS_CONSOLE=""
# CFLAGS_NOCONSOLE=""
# CFLAGS_APPTYPE=""

!if defined(USEMINGW32) || defined(USEMINGW64)
CFLAGS_LOCAL=-DSTARTUP_CLASS="\"Smalltalk\"" -DSTARTUP_SELECTOR="\"start\"" -DUSE_MODULE_TABLE
!else
CFLAGS_LOCAL=$(CFLAGS_APPTYPE) -DSTARTUP_CLASS="\"Smalltalk\"" -DSTARTUP_SELECTOR="\"start\"" -DUSE_MODULE_TABLE
!endif

#

!INCLUDE $(TOP)\rules\stdHeader_bc
!INCLUDE Make.spec

!ifdef USEBC

# CFLAGS1= -WD -w-pro -w-ccc -w-rch -w-aus -w-par -x- -r- -k -y -v -vi- -c -tWDR
CFLAGS1= -w-pro -w-ccc -w-rch -w-aus -w-par -x- -r- -k -y -v -vi- -c
CFLAGS_CONSOLE=-tWC -tWR -D_NO_VCL;WIN32
CFLAGS_NOCONSOLE=-tWR -D_NO_VCL;WIN32GUI;WIN32
LFLAGS_CONSOLE=-ap
LFLAGS_NOCONSOLE=-aa
CRT_STARTUP_CONSOLE=c0x32.obj
CRT_STARTUP_NOCONSOLE=c0w32.obj

!else
! ifdef USEVC
CRT_STARTUP_CONSOLE=
CRT_STARTUP_NOCONSOLE=
! endif
!endif

OBJS= $(COMMON_OBJS) $(WIN32_OBJS)



#
LIBNAME=dummy
STCOPT="+optinline"
LOCALINCLUDES= -I$(INCLUDE_TOP)\stx\goodies\refactoryBrowser\helpers -I$(INCLUDE_TOP)\stx\libwidg3 -I$(INCLUDE_TOP)\stx\libbasic -I$(INCLUDE_TOP)\stx\libjavascript -I$(INCLUDE_TOP)\stx\goodies\refactoryBrowser\parser -I$(INCLUDE_TOP)\stx\goodies\refactoryBrowser\refactoring -I$(INCLUDE_TOP)\stx\libwidg -I$(INCLUDE_TOP)\stx\libview2 -I$(INCLUDE_TOP)\stx\libbasic2 -I$(INCLUDE_TOP)\stx\libview -I$(INCLUDE_TOP)\stx\libhtml -I$(INCLUDE_TOP)\stx\libtool -I$(INCLUDE_TOP)\stx\libtool2 -I$(INCLUDE_TOP)\stx\libcomp -I$(INCLUDE_TOP)\stx\goodies\refactoryBrowser\changes -I$(INCLUDE_TOP)\stx\goodies\refactoryBrowser\browser -I$(INCLUDE_TOP)\stx\goodies\refactoryBrowser\lint -I$(INCLUDE_TOP)\stx\libboss -I$(INCLUDE_TOP)\stx\libwidg2 -I$(INCLUDE_TOP)\stx\libbasic3 -I$(INCLUDE_TOP)\stx\libui
LOCALDEFINES=
GLOBALDEFINES=

STCLOCALOPT='-package=$(PACKAGE)' $(LOCALDEFINES) $(LOCALINCLUDES)  $(STCLOCALOPTIMIZATIONS) $(STCWARNINGS) $(LOCALDEFINES) $(COMMONSYMFLAG) -varPrefix=$(LIBNAME)

!ifdef USEBC

LINKER=$(BCB)\BIN\ilink32
# ilink32 flags, see http://docs.embarcadero.com/products/rad_studio/delphiAndcpp2009/HelpUpdate2/EN/html/devwin32/ilink32_xml.html
# strip: -x
# object align: -Ao:
# file align: -Af:
# heap reserve: -H:
# stack reserve: -S:
# stack commit size: -Sc:
# target executable: -Tpe

LFLAG_STRIP=-x
# LFLAG_STRIP=
# LFLAGS = -L$(LIBDIR);$(BCB)\lib;$(DEBUGLIBPATH) -H:0x400000 -Hc:0x100000 -S:0x40000 -Sc:0x10000 -ap -Tpe -x -Gn -v -Ao:0x10000
# LFLAGS = -L$(LIBDIR);$(BCB)\lib -S:0x40000 -Sc:0x10000 $(LFLAGS_APPTYPE) -Tpe -x -Gn -v -Ao:0x10000
LFLAGS = -L$(LIBDIR);$(BCB)\lib -S:0x40000 -Sc:0x10000 $(LFLAGS_APPTYPE) -Tpe $(LFLAG_STRIP) -Gn -v -Ao:0x10000

!else
! ifdef USEVC

LINKER = $(LINK32)
CRT_STARTUP=
RT_LIB =
LFLAGS = /LARGEADDRESSAWARE /nologo /DEBUG /DYNAMICBASE:NO /MACHINE:X86 /ERRORREPORT:PROMPT

! else
!  ifdef USEMINGW64

LINKER = $(LINK32)
CRT_STARTUP=
RT_LIB =
# LFLAGS = /LARGEADDRESSAWARE /nologo /DEBUG /DYNAMICBASE:NO /MACHINE:X86 /ERRORREPORT:PROMPT

!  else
!   ifdef USEMINGW32

LINKER = $(LINK32)
CRT_STARTUP=
RT_LIB =
# LFLAGS = /LARGEADDRESSAWARE /nologo /DEBUG /DYNAMICBASE:NO /MACHINE:X86 /ERRORREPORT:PROMPT

!   else
error error - unsupported compiler
!   endif
!  endif
! endif
!endif

PROJECT_NOCONSOLE=stx.exe
PROJECT_CONSOLE=stx.com
ALLOBJFILES=main.obj
RESFILES=smalltalkWinRC.$(RES)
ALLOBJ=$(CRT_STARTUP) $(ALLOBJFILES) $(OBJS)
DEFFILE=$(TOP)\rules\bc_exe.def

LIBFILES=$(LIBDIR)\librun.lib

!ifdef USEBC
ALLLIB=$(LIBFILES) import32.lib $(RT_LIB)
!endif

!ifdef USEVC
ALLLIB=$(LIBFILES) kernel32.lib libcmt.lib
!endif

REQUIRED_LIBS=librun.dll  \
 libstx_libbasic.dll \
 libstx_goodies_refactoryBrowser_helpers.dll \
 libstx_goodies_refactoryBrowser_parser.dll \
 libstx_libbasic2.dll \
 libstx_libcomp.dll \
 libstx_libview.dll \
 libstx_libbasic3.dll \
 libstx_libview2.dll \
 libstx_libboss.dll \
 libstx_libjavascript.dll \
 libstx_goodies_refactoryBrowser_changes.dll \
 libstx_goodies_sunit.dll \
 libstx_libui.dll \
 libstx_libwidg.dll \
 libstx_libview3.dll \
 libstx_libhtml.dll \
 libstx_libwidg2.dll \
 libstx_libwidg3.dll \
 libstx_libtool.dll \
 libstx_libcompat.dll \
 libstx_goodies_refactoryBrowser_refactoring.dll \
 libstx_libtool2.dll \
 libstx_goodies_refactoryBrowser_browser.dll \
 libstx_goodies_refactoryBrowser_lint.dll \
 libstx_libsvn.dll \
 libstx_libscm_common.dll \
 libstx_libscm_mercurial.dll \


# REQUIRED_FILES=cs3245.dll X11.dll Xext.dll symbols.stc $(REQUIRED_LIBS)
REQUIRED_FILES=$(RT_DLL) X11.dll Xext.dll symbols.stc $(REQUIRED_LIBS)

REQUIRED_SUPPORT_DIRS=RESOURCEFILES

target: exe postBuildCleanup

# the executable, all required files and a self-installing-installer-exe
ALL:: prereq exe postBuildCleanup setup

exe:  newBuildDate noConsoleApp consoleApp $(REQUIRED_SUPPORT_DIRS)

# the executable only
# with console

consoleApp: $(REQUIRED_LIBS)
	echo "making consoleApp"
	-del main.obj
	$(MAKE) -N -f bc.mak \
		$(USE_ARG) \
		MAKE_BAT=$(MAKE_BAT) \
		PROJECT=$(PROJECT_CONSOLE) \
		CFLAGS_APPTYPE="$(CFLAGS_CONSOLE)" \
		LFLAGS_APPTYPE="$(LFLAGS_CONSOLE)"  \
		CRT_STARTUP="$(CRT_STARTUP_CONSOLE)" theExe

# without console
noConsoleApp: $(REQUIRED_LIBS)
	echo "making noCosnoleApp"
	-del main.obj
	$(MAKE) -N -f bc.mak \
		$(USE_ARG) \
		MAKE_BAT=$(MAKE_BAT) \
		PROJECT=$(PROJECT_NOCONSOLE) \
		CFLAGS_APPTYPE="$(CFLAGS_NOCONSOLE) -DWIN_LOGFILE="\\"\"smalltalk.log\\"\""" \
		LFLAGS_APPTYPE="$(LFLAGS_NOCONSOLE)"  \
		CRT_STARTUP="$(CRT_STARTUP_NOCONSOLE)" theExe

# the executable only (internal target; needs some defines)
theExe: $(OUTDIR) $(OBJS) $(REQUIRED_FILES) show $(PROJECT)

# build all prerequisite packages for this package
prereq:
	pushd ..\..\libbasic & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
	pushd ..\..\goodies\refactoryBrowser\helpers & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
	pushd ..\..\goodies\refactoryBrowser\parser & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
	pushd ..\..\libbasic2 & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
	pushd ..\..\libcomp & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
	pushd ..\..\libview & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
	pushd ..\..\libbasic3 & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
	pushd ..\..\libview2 & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
	pushd ..\..\libboss & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
	pushd ..\..\libjavascript & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
	pushd ..\..\goodies\refactoryBrowser\changes & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
	pushd ..\..\goodies\sunit & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
	pushd ..\..\libui & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
	pushd ..\..\libwidg & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
	pushd ..\..\libview3 & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
	pushd ..\..\libhtml & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
	pushd ..\..\libwidg2 & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
	pushd ..\..\libwidg3 & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
	pushd ..\..\libtool & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
	pushd ..\..\libcompat & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
	pushd ..\..\goodies\refactoryBrowser\refactoring & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
	pushd ..\..\libtool2 & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
	pushd ..\..\goodies\refactoryBrowser\browser & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
	pushd ..\..\goodies\refactoryBrowser\lint & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
	pushd ..\..\librun & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "


# a nullsoft installable delivery
# This uses the Nullsoft Installer Package and works in Windows only
setup: $(PROJECT) postBuildCleanup smalltalk.nsi
	$(MAKENSIS) smalltalk.nsi

newBuildDate:
	del buildDate.h

new:
	$(MAKE_BAT) clean
	$(MAKE_BAT)

RESOURCEFILES: smalltalk_RESOURCES smalltalk_BITMAPS  \
	stx_RESOURCES stx_STYLES stx_BITMAPS


smalltalk_RESOURCES: resources\stx\projects\smalltalk
	-copy ..\resources\*.rs resources\stx\projects\smalltalk\..
	-copy ..\resources\*.style resources\stx\projects\smalltalk\..

smalltalk_BITMAPS: resources\stx\projects\smalltalk\bitmaps
	-copy *.ico resources\stx\projects\smalltalk\bitmaps
	-copy *.gif resources\stx\projects\smalltalk\bitmaps

resources\stx\projects\smalltalk\bitmaps: resources\stx\projects\smalltalk
	-mkdir resources\stx\projects\smalltalk\bitmaps

resources\stx\projects\smalltalk: resources\stx\projects
	-mkdir resources\stx\projects\smalltalk

resources\stx\projects: resources\stx
	-mkdir resources\stx\projects



stx_RESOURCES: \
	keyboard.rc \
	keyboardMacros.rc \
	host.rc \
	h_win32.rc \
	display.rc \
	d_win32.rc \
	libbasic_RESOURCES \
	libview_RESOURCES \
	libtool_RESOURCES  \
	libtool2_RESOURCES

keyboard.rc: $(TOP)\projects\smalltalk\keyboard.rc
	copy $(TOP)\projects\smalltalk\keyboard.rc *.*

keyboardMacros.rc: $(TOP)\projects\smalltalk\keyboardMacros.rc
	copy $(TOP)\projects\smalltalk\keyboardMacros.rc *.*

host.rc: $(TOP)\projects\smalltalk\host.rc
	copy $(TOP)\projects\smalltalk\host.rc *.*

h_win32.rc: $(TOP)\projects\smalltalk\h_win32.rc
	copy $(TOP)\projects\smalltalk\h_win32.rc *.*

display.rc: $(TOP)\projects\smalltalk\display.rc
	copy $(TOP)\projects\smalltalk\display.rc *.*

d_win32.rc: $(TOP)\projects\smalltalk\d_win32.rc
	copy $(TOP)\projects\smalltalk\d_win32.rc *.*

stx_STYLES: resources\stx\libview resources\stx\libview\styles
	-copy $(TOP)\libview\styles\*.style resources\stx\libview\styles\*.*
	-copy $(TOP)\libview\styles\*.common resources\stx\libview\styles\*.*

stx_BITMAPS: \
	libwidg_BITMAPS

libwidg_BITMAPS: resources\stx\libwidg\bitmaps
	-copy $(TOP)\libwidg\bitmaps\*.xpm resources\stx\libwidg\bitmaps\*.*

libbasic_RESOURCES: resources\stx\libbasic
	copy $(TOP)\libbasic\resources\*.rs resources\stx\libbasic\*.*

libtool_RESOURCES: resources\stx\libtool
	-copy $(TOP)\libtool\resources\*.rs resources\stx\libtool\*.*

libtool2_RESOURCES: resources\stx\libtool2
	-copy $(TOP)\libtool2\resources\*.rs resources\stx\libtool2\*.*

libview_RESOURCES: resources\stx\libview
	-copy $(TOP)\libview\resources\*.rs resources\stx\libview\*.*

libview2_RESOURCES: resources\stx\libview2
	-copy $(TOP)\libview2\resources\*.rs resources\stx\libview2\*.*

resources\stx\libbasic: resources\stx
	-mkdir resources\stx\libbasic

resources\stx\libtool: resources\stx
	-mkdir resources\stx\libtool

resources\stx\libtool2: resources\stx
	-mkdir resources\stx\libtool2

resources\stx\libview: resources\stx
	-mkdir resources\stx\libview

resources\stx\libview\styles: resources\stx\libview
	-mkdir resources\stx\libview\styles

resources\stx\libview2: resources\stx
	-mkdir resources\stx\libview2

resources\stx\libwidg\bitmaps: resources\stx\libwidg
	-mkdir resources\stx\libwidg\bitmaps

resources\stx\libwidg: resources\stx
	-mkdir resources\stx\libwidg

resources\stx: resources
	-mkdir resources\stx

resources:
	-mkdir resources

bitmaps:
	-mkdir bitmaps

doc:
	-mkdir doc






libstx_libbasic.dll: ..\..\libbasic\$(OBJDIR)\libstx_libbasic.dll
	copy ..\..\libbasic\$(OBJDIR)\libstx_libbasic.dll *.*

..\..\libbasic\$(OBJDIR)\libstx_libbasic.dll:
	pushd ..\..\libbasic & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES)"

libstx_goodies_refactoryBrowser_helpers.dll: ..\..\goodies\refactoryBrowser\helpers\$(OBJDIR)\libstx_goodies_refactoryBrowser_helpers.dll
	copy ..\..\goodies\refactoryBrowser\helpers\$(OBJDIR)\libstx_goodies_refactoryBrowser_helpers.dll *.*

..\..\goodies\refactoryBrowser\helpers\$(OBJDIR)\libstx_goodies_refactoryBrowser_helpers.dll:
	pushd ..\..\goodies\refactoryBrowser\helpers & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES)"

libstx_goodies_refactoryBrowser_parser.dll: ..\..\goodies\refactoryBrowser\parser\$(OBJDIR)\libstx_goodies_refactoryBrowser_parser.dll
	copy ..\..\goodies\refactoryBrowser\parser\$(OBJDIR)\libstx_goodies_refactoryBrowser_parser.dll *.*

..\..\goodies\refactoryBrowser\parser\$(OBJDIR)\libstx_goodies_refactoryBrowser_parser.dll:
	pushd ..\..\goodies\refactoryBrowser\parser & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES)"

libstx_libbasic2.dll: ..\..\libbasic2\$(OBJDIR)\libstx_libbasic2.dll
	copy ..\..\libbasic2\$(OBJDIR)\libstx_libbasic2.dll *.*

..\..\libbasic2\$(OBJDIR)\libstx_libbasic2.dll:
	pushd ..\..\libbasic2 & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES)"

libstx_libcomp.dll: ..\..\libcomp\$(OBJDIR)\libstx_libcomp.dll
	copy ..\..\libcomp\$(OBJDIR)\libstx_libcomp.dll *.*

..\..\libcomp\$(OBJDIR)\libstx_libcomp.dll:
	pushd ..\..\libcomp & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES)"

libstx_libview.dll: ..\..\libview\$(OBJDIR)\libstx_libview.dll
	copy ..\..\libview\$(OBJDIR)\libstx_libview.dll *.*

..\..\libview\$(OBJDIR)\libstx_libview.dll:
	pushd ..\..\libview & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES)"

libstx_libbasic3.dll: ..\..\libbasic3\$(OBJDIR)\libstx_libbasic3.dll
	copy ..\..\libbasic3\$(OBJDIR)\libstx_libbasic3.dll *.*

..\..\libbasic3\$(OBJDIR)\libstx_libbasic3.dll:
	pushd ..\..\libbasic3 & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES)"

libstx_libview2.dll: ..\..\libview2\$(OBJDIR)\libstx_libview2.dll
	copy ..\..\libview2\$(OBJDIR)\libstx_libview2.dll *.*

..\..\libview2\$(OBJDIR)\libstx_libview2.dll:
	pushd ..\..\libview2 & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES)"

libstx_libboss.dll: ..\..\libboss\$(OBJDIR)\libstx_libboss.dll
	copy ..\..\libboss\$(OBJDIR)\libstx_libboss.dll *.*

..\..\libboss\$(OBJDIR)\libstx_libboss.dll:
	pushd ..\..\libboss & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES)"

libstx_libjavascript.dll: ..\..\libjavascript\$(OBJDIR)\libstx_libjavascript.dll
	copy ..\..\libjavascript\$(OBJDIR)\libstx_libjavascript.dll *.*

..\..\libjavascript\$(OBJDIR)\libstx_libjavascript.dll:
	pushd ..\..\libjavascript & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES)"

libstx_goodies_refactoryBrowser_changes.dll: ..\..\goodies\refactoryBrowser\changes\$(OBJDIR)\libstx_goodies_refactoryBrowser_changes.dll
	copy ..\..\goodies\refactoryBrowser\changes\$(OBJDIR)\libstx_goodies_refactoryBrowser_changes.dll *.*

..\..\goodies\refactoryBrowser\changes\$(OBJDIR)\libstx_goodies_refactoryBrowser_changes.dll:
	pushd ..\..\goodies\refactoryBrowser\changes & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES)"

libstx_goodies_sunit.dll: ..\..\goodies\sunit\$(OBJDIR)\libstx_goodies_sunit.dll
	copy ..\..\goodies\sunit\$(OBJDIR)\libstx_goodies_sunit.dll *.*

..\..\goodies\sunit\$(OBJDIR)\libstx_goodies_sunit.dll:
	pushd ..\..\goodies\sunit & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES)"

libstx_libui.dll: ..\..\libui\$(OBJDIR)\libstx_libui.dll
	copy ..\..\libui\$(OBJDIR)\libstx_libui.dll *.*

..\..\libui\$(OBJDIR)\libstx_libui.dll:
	pushd ..\..\libui & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES)"

libstx_libwidg.dll: ..\..\libwidg\$(OBJDIR)\libstx_libwidg.dll
	copy ..\..\libwidg\$(OBJDIR)\libstx_libwidg.dll *.*

..\..\libwidg\$(OBJDIR)\libstx_libwidg.dll:
	pushd ..\..\libwidg & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES)"

libstx_libview3.dll: ..\..\libview3\$(OBJDIR)\libstx_libview3.dll
	copy ..\..\libview3\$(OBJDIR)\libstx_libview3.dll *.*

..\..\libview3\$(OBJDIR)\libstx_libview3.dll:
	pushd ..\..\libview3 & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES)"

libstx_libhtml.dll: ..\..\libhtml\$(OBJDIR)\libstx_libhtml.dll
	copy ..\..\libhtml\$(OBJDIR)\libstx_libhtml.dll *.*

..\..\libhtml\$(OBJDIR)\libstx_libhtml.dll:
	pushd ..\..\libhtml & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES)"

libstx_libwidg2.dll: ..\..\libwidg2\$(OBJDIR)\libstx_libwidg2.dll
	copy ..\..\libwidg2\$(OBJDIR)\libstx_libwidg2.dll *.*

..\..\libwidg2\$(OBJDIR)\libstx_libwidg2.dll:
	pushd ..\..\libwidg2 & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES)"

libstx_libwidg3.dll: ..\..\libwidg3\$(OBJDIR)\libstx_libwidg3.dll
	copy ..\..\libwidg3\$(OBJDIR)\libstx_libwidg3.dll *.*

..\..\libwidg3\$(OBJDIR)\libstx_libwidg3.dll:
	pushd ..\..\libwidg3 & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES)"

libstx_libtool.dll: ..\..\libtool\$(OBJDIR)\libstx_libtool.dll
	copy ..\..\libtool\$(OBJDIR)\libstx_libtool.dll *.*

..\..\libtool\$(OBJDIR)\libstx_libtool.dll:
	pushd ..\..\libtool & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES)"

libstx_libcompat.dll: ..\..\libcompat\$(OBJDIR)\libstx_libcompat.dll
	copy ..\..\libcompat\$(OBJDIR)\libstx_libcompat.dll *.*

..\..\libcompat\$(OBJDIR)\libstx_libcompat.dll:
	pushd ..\..\libcompat & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES)"

libstx_goodies_refactoryBrowser_refactoring.dll: ..\..\goodies\refactoryBrowser\refactoring\$(OBJDIR)\libstx_goodies_refactoryBrowser_refactoring.dll
	copy ..\..\goodies\refactoryBrowser\refactoring\$(OBJDIR)\libstx_goodies_refactoryBrowser_refactoring.dll *.*

..\..\goodies\refactoryBrowser\refactoring\$(OBJDIR)\libstx_goodies_refactoryBrowser_refactoring.dll:
	pushd ..\..\goodies\refactoryBrowser\refactoring & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES)"

libstx_libtool2.dll: ..\..\libtool2\$(OBJDIR)\libstx_libtool2.dll
	copy ..\..\libtool2\$(OBJDIR)\libstx_libtool2.dll *.*

..\..\libtool2\$(OBJDIR)\libstx_libtool2.dll:
	pushd ..\..\libtool2 & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES)"

libstx_libsvn.dll: ..\..\libsvn\$(OBJDIR)\libstx_libsvn.dll
	copy ..\..\libsvn\$(OBJDIR)\libstx_libsvn.dll *.*

..\..\libsvn\$(OBJDIR)\libstx_libsvn.dll:
	pushd ..\..\libsvn & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES)"

libstx_libscm_common.dll: ..\..\libscm\common\$(OBJDIR)\libstx_libscm_common.dll
	copy ..\..\libscm\common\$(OBJDIR)\libstx_libscm_common.dll *.*

..\..\libscm\common\$(OBJDIR)\libstx_libscm_common.dll:
	pushd ..\..\libscm\common & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES)"

libstx_libscm_mercurial.dll: ..\..\libscm\mercurial\$(OBJDIR)\libstx_libscm_mercurial.dll
	copy ..\..\libscm\mercurial\$(OBJDIR)\libstx_libscm_mercurial.dll *.*

..\..\libscm\mercurial\$(OBJDIR)\libstx_libscm_mercurial.dll:
	pushd ..\..\libscm\mercurial & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES)"

libstx_goodies_refactoryBrowser_browser.dll: ..\..\goodies\refactoryBrowser\browser\$(OBJDIR)\libstx_goodies_refactoryBrowser_browser.dll
	copy ..\..\goodies\refactoryBrowser\browser\$(OBJDIR)\libstx_goodies_refactoryBrowser_browser.dll *.*

..\..\goodies\refactoryBrowser\browser\$(OBJDIR)\libstx_goodies_refactoryBrowser_browser.dll:
	pushd ..\..\goodies\refactoryBrowser\browser & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES)"

libstx_goodies_refactoryBrowser_lint.dll: ..\..\goodies\refactoryBrowser\lint\$(OBJDIR)\libstx_goodies_refactoryBrowser_lint.dll
	copy ..\..\goodies\refactoryBrowser\lint\$(OBJDIR)\libstx_goodies_refactoryBrowser_lint.dll *.*

..\..\goodies\refactoryBrowser\lint\$(OBJDIR)\libstx_goodies_refactoryBrowser_lint.dll:
	pushd ..\..\goodies\refactoryBrowser\lint & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES)"




sources:
	mkdir sources

show:
	@echo LFLAGS= $(LFLAGS)
	@echo ALLOBJ= $(ALLOBJ)
	@echo PROJECT= $(PROJECT)
	@echo ALLLIB= $(ALLLIB)
	@echo DEFFILE= $(DEFFILE)
	@echo ALLRES= $(ALLRES)

!ifdef USEBC

$(PROJECT_CONSOLE): $(ALLOBJFILES) $(OBJS) $(RESFILES) $(DEFFILE)
	@echo ************************************
	@echo linking BCC console executable: $(PROJECT_CONSOLE)
	@echo ************************************
	$(LINKER) $(LFLAGS) $(ALLOBJ), $(PROJECT_CONSOLE),, $(ALLLIB), $(DEFFILE), $(RESFILES)

$(PROJECT_NOCONSOLE): $(ALLOBJFILES) $(OBJS) $(RESFILES) $(DEFFILE)
	@echo ************************************
	@echo linking BCC windows executable: $(PROJECT_NOCONSOLE)
	@echo ************************************
	$(LINKER) $(LFLAGS) $(ALLOBJ), $(PROJECT_NOCONSOLE),, $(ALLLIB), $(DEFFILE), $(RESFILES)

!else
! ifdef USEVC

$(PROJECT_CONSOLE): $(ALLOBJFILES) $(OBJS) $(RESFILES) $(DEFFILE)
	@echo ************************************
	@echo linking VC console executable: $(PROJECT_CONSOLE)
	@echo ************************************
	$(LINKER) $(LFLAGS) $(ALLOBJ) /OUT:"$(PROJECT_CONSOLE)" \
	    /MANIFEST /MANIFESTFILE:"$(PROJECT_CONSOLE).manifest" \
	    /PDB:"$(PROJECT_CONSOLE).pdb" \
	    /SUBSYSTEM:CONSOLE $(ALLLIB) $(RESFILES)

$(PROJECT_NOCONSOLE): $(ALLOBJFILES) $(OBJS) $(RESFILES) $(DEFFILE)
	@echo ************************************
	@echo linking VC windows executable: $(PROJECT_NOCONSOLE)
	@echo ************************************
	$(LINKER) $(LFLAGS) $(ALLOBJ) /OUT:"$(PROJECT_NOCONSOLE)" \
	    /MANIFEST /MANIFESTFILE:"$(PROJECT_NOCONSOLE).manifest" \
	    /PDB:"$(PROJECT_NOCONSOLE).pdb" \
	    /SUBSYSTEM:CONSOLE $(ALLLIB) $(RESFILES)

! else
!  if defined( USEMINGW64 ) || defined( USEMINGW32 )

$(PROJECT_CONSOLE): $(ALLOBJFILES) $(OBJS) $(RESFILES) $(DEFFILE)
	@echo ************************************
	@echo linking MINGW console executable: $(PROJECT_CONSOLE) / $(RESFILES)
	@echo ************************************
	$(LINKER) $(LFLAGS_CONSOLE) $(ALLOBJ) $(RESFILES) \
	     $(ALLLIB) -o "$(PROJECT_CONSOLE)"

$(PROJECT_NOCONSOLE): $(ALLOBJFILES) $(OBJS) $(RESFILES) $(DEFFILE)
	@echo ************************************
	@echo linking MINGW windows executable: $(PROJECT_NOCONSOLE) / $(RESFILES)
	@echo ************************************
	$(LINKER) $(LFLAGS_NOCONSOLE) $(ALLOBJ) $(RESFILES) \
	     $(ALLLIB) -o "$(PROJECT_NOCONSOLE)"

!  else
error error error
!  endif
! endif
!endif

!INCLUDE $(TOP)\rules\stdRules_bc

#
# additional rules
#
smalltalkWin.$(RES): smalltalkWin.rc smalltalk.ico

main.obj: buildDate.h main.c bc.mak

main.c: $(TOP)\librun\main.c
	copy $(TOP)\librun\main.c main.c

librun.dll: $(TOP)\librun\$(OBJDIR)\librun.dll
	copy $(TOP)\librun\$(OBJDIR)\librun.dll librun.dll

cs3245.dll: $(TOP)\support\win32\borland\cs3245.dll
	copy $(TOP)\support\win32\borland\cs3245.dll cs3245.dll

X11.dll: $(TOP)\support\win32\X11.dll
	copy $(TOP)\support\win32\X11.dll X11.dll

Xext.dll: $(TOP)\support\win32\Xext.dll
	copy $(TOP)\support\win32\Xext.dll Xext.dll

symbols.stc: $(TOP)\include\symbols.stc
	copy $(TOP)\include\symbols.stc symbols.stc

clean::
	-del genDate.exe genDate.com
	-del c0x32.dll
	-del c0x32.lib
	-del buildDate.h
	-del $(PROJECT)
	-del install_smalltalk.exe
	-del stx.lib
	-del stx.dll
	-del cs3245.dll
	-del $(REQUIRED_FILES)
	-del main.c
	-del *.log
	-del *.res
	-rmdir /S /Q resources
	-rmdir /S /Q objbc

clobber:: clean
	-del *.dll *.exe *.com

# stupid win-make does not allow empty - therefore echo something
postBuildCleanup::
	@-echo "postbuild cleanup"

# BEGINMAKEDEPEND --- do not remove this line; make depend needs it
$(OUTDIR)stx_projects_smalltalk.$(O) stx_projects_smalltalk.$(H): stx_projects_smalltalk.st $(INCLUDE_TOP)\stx\libbasic\ApplicationDefinition.$(H) $(INCLUDE_TOP)\stx\libbasic\ProjectDefinition.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)

# ENDMAKEDEPEND --- do not remove this line