summaryrefslogtreecommitdiff
path: root/win32
diff options
context:
space:
mode:
authorSteve Hay <SteveHay@planit.com>2005-08-12 16:13:11 +0000
committerSteve Hay <SteveHay@planit.com>2005-08-12 16:13:11 +0000
commit8169a885e54b185b764945e68a001202a9d927d3 (patch)
tree3105c080ffa6e6aa8bba8b3e8f5bb73fd3917db9 /win32
parent08039b818b7a6e623279d03df2f71c92137e1052 (diff)
downloadperl-8169a885e54b185b764945e68a001202a9d927d3.tar.gz
Supply same libs for bcc32 builds as cl and gcc builds have
It makes life easier for third-party extensions if perl provides a decent set of libs to link against. cl and gcc builds already have this (except that gcc was missing one lib), but bcc32 builds only have one or two libs supplied. In particular, the ODBC libs required for building libwin32 were not specified. One of these doesn't exist in the Borland lib dirs by default, so generate it from the DLL if it is missing. p4raw-id: //depot/perl@25289
Diffstat (limited to 'win32')
-rw-r--r--win32/makefile.mk29
1 files changed, 25 insertions, 4 deletions
diff --git a/win32/makefile.mk b/win32/makefile.mk
index 0a8bd5b838..7ab47559b0 100644
--- a/win32/makefile.mk
+++ b/win32/makefile.mk
@@ -180,7 +180,7 @@ CRYPT_SRC *= fcrypt.c
# not be quoted)
#
.IF "$(CCTYPE)" == "BORLAND"
-CCHOME *= C:\borland\bcc55
+CCHOME *= C:\Borland\BCC55
.ELIF "$(CCTYPE)" == "GCC"
CCHOME *= C:\MinGW
.ELSE
@@ -391,7 +391,14 @@ SUBSYS = console
CXX_FLAG = -P
LIBC = cw32mti.lib
-LIBFILES = $(CRYPT_LIB) ws2_32.lib import32.lib $(LIBC)
+
+# same libs as MSVC, except Borland doesn't have oldnames.lib
+LIBFILES = $(CRYPT_LIB) \
+ kernel32.lib user32.lib gdi32.lib winspool.lib \
+ comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib \
+ netapi32.lib uuid.lib ws2_32.lib mpr.lib winmm.lib \
+ version.lib odbc32.lib odbccp32.lib \
+ import32.lib $(LIBC)
.IF "$(CFG)" == "Debug"
OPTIMIZE = -v -D_RTLDLL -DDEBUGGING
@@ -403,7 +410,8 @@ LINK_DBG =
CFLAGS = -w -g0 -tWM -tWD $(INCLUDES) $(DEFINES) $(LOCDEFS) \
$(PCHFLAGS) $(OPTIMIZE)
-LINK_FLAGS = $(LINK_DBG) -L"$(INST_COREDIR)" -L"$(CCLIBDIR)"
+LINK_FLAGS = $(LINK_DBG) -L"$(INST_COREDIR)" -L"$(CCLIBDIR)" \
+ -L"$(CCLIBDIR)\PSDK"
OBJOUT_FLAG = -o
EXEOUT_FLAG = -e
LIBOUT_FLAG =
@@ -446,7 +454,7 @@ LIBFILES = $(CRYPT_LIB) $(LIBC) \
-lmoldname -lkernel32 -luser32 -lgdi32 \
-lwinspool -lcomdlg32 -ladvapi32 -lshell32 -lole32 \
-loleaut32 -lnetapi32 -luuid -lws2_32 -lmpr \
- -lwinmm -lversion -lodbc32
+ -lwinmm -lversion -lodbc32 -lodbccp32
.IF "$(CFG)" == "Debug"
OPTIMIZE = -g -O2 -DDEBUGGING
@@ -927,6 +935,17 @@ MK2 = __not_needed
RIGHTMAKE =
.ENDIF
+.IMPORT .IGNORE : SystemRoot windir
+
+# Don't just .IMPORT OS from the environment because dmake sets OS itself.
+ENV_OS=$(subst,OS=, $(shell @set OS))
+
+.IF "$(ENV_OS)" == "Windows_NT"
+ODBCCP32_DLL = $(SystemRoot)\system32\odbccp32.dll
+.ELSE
+ODBCCP32_DLL = $(windir)\system\odbccp32.dll
+.ENDIF
+
#
# Top targets
#
@@ -1036,6 +1055,8 @@ $(CONFIGPM) : $(MINIPERL) ..\config.sh config_h.PL ..\minimod.pl
$(MINIPERL) : $(MINIDIR) $(MINI_OBJ) $(CRTIPMLIBS)
.IF "$(CCTYPE)" == "BORLAND"
+ if not exist $(CCLIBDIR)\PSDK\odbccp32.lib \
+ cd $(CCLIBDIR)\PSDK && implib odbccp32.lib $(ODBCCP32_DLL)
$(LINK32) -Tpe -ap $(BLINK_FLAGS) \
@$(mktmp c0x32$(o) $(MINI_OBJ:s,\,$B,),$(@:s,\,$B,),,$(LIBFILES),)
.ELIF "$(CCTYPE)" == "GCC"