Commit 5d72ef83 authored by Tom Lane's avatar Tom Lane

Miscellaneous Cygwin build fixes from Reini Urban.

parent ede8f4e3
# $PostgreSQL: pgsql/contrib/spi/Makefile,v 1.24 2004/08/20 20:13:08 momjian Exp $ # $PostgreSQL: pgsql/contrib/spi/Makefile,v 1.25 2004/11/17 17:45:59 tgl Exp $
MODULES = autoinc insert_username moddatetime refint timetravel MODULES = autoinc insert_username moddatetime refint timetravel
DATA_built = $(addsuffix .sql, $(MODULES)) DATA_built = $(addsuffix .sql, $(MODULES))
...@@ -17,3 +17,5 @@ top_builddir = ../.. ...@@ -17,3 +17,5 @@ top_builddir = ../..
include $(top_builddir)/src/Makefile.global include $(top_builddir)/src/Makefile.global
include $(top_srcdir)/contrib/contrib-global.mk include $(top_srcdir)/contrib/contrib-global.mk
endif endif
SHLIB_LINK += -L$(top_builddir)/src/port -lpgport
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
* *
* Portions Copyright (c) 1996-2004, PostgreSQL Global Development Group * Portions Copyright (c) 1996-2004, PostgreSQL Global Development Group
* *
* $PostgreSQL: pgsql/src/bin/pg_ctl/pg_ctl.c,v 1.46 2004/11/17 16:34:42 tgl Exp $ * $PostgreSQL: pgsql/src/bin/pg_ctl/pg_ctl.c,v 1.47 2004/11/17 17:46:12 tgl Exp $
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
...@@ -22,6 +22,7 @@ ...@@ -22,6 +22,7 @@
#include "getopt_long.h" #include "getopt_long.h"
#if defined(__CYGWIN__) #if defined(__CYGWIN__)
#include <sys/cygwin.h>
#include <windows.h> #include <windows.h>
/* Cygwin defines WIN32 in windows.h, but we don't want it. */ /* Cygwin defines WIN32 in windows.h, but we don't want it. */
#undef WIN32 #undef WIN32
...@@ -820,6 +821,9 @@ pgwin32_CommandLine(bool registration) ...@@ -820,6 +821,9 @@ pgwin32_CommandLine(bool registration)
{ {
static char cmdLine[MAXPGPATH]; static char cmdLine[MAXPGPATH];
int ret; int ret;
#ifdef __CYGWIN__
char buf[MAXPGPATH];
#endif
if (registration) if (registration)
{ {
...@@ -840,6 +844,12 @@ pgwin32_CommandLine(bool registration) ...@@ -840,6 +844,12 @@ pgwin32_CommandLine(bool registration)
} }
} }
#ifdef __CYGWIN__
/* need to convert to windows path */
cygwin_conv_to_full_win32_path(cmdLine, buf);
strcpy(cmdLine, buf);
#endif
if (registration) if (registration)
{ {
if (strcasecmp(cmdLine + strlen(cmdLine) - 4, ".exe")) if (strcasecmp(cmdLine + strlen(cmdLine) - 4, ".exe"))
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
* Portions Copyright (c) 1996-2004, PostgreSQL Global Development Group * Portions Copyright (c) 1996-2004, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California * Portions Copyright (c) 1994, Regents of the University of California
* *
* $PostgreSQL: pgsql/src/include/port.h,v 1.66 2004/11/08 16:34:23 momjian Exp $ * $PostgreSQL: pgsql/src/include/port.h,v 1.67 2004/11/17 17:46:15 tgl Exp $
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
...@@ -73,9 +73,13 @@ extern int find_other_exec(const char *argv0, const char *target, ...@@ -73,9 +73,13 @@ extern int find_other_exec(const char *argv0, const char *target,
#if defined(WIN32) || defined(__CYGWIN__) #if defined(WIN32) || defined(__CYGWIN__)
#define EXE ".exe" #define EXE ".exe"
#define DEVNULL "nul"
#else #else
#define EXE "" #define EXE ""
#endif
#if defined(WIN32) && !defined(__CYGWIN__)
#define DEVNULL "nul"
#else
#define DEVNULL "/dev/null" #define DEVNULL "/dev/null"
#endif #endif
...@@ -88,13 +92,13 @@ extern int find_other_exec(const char *argv0, const char *target, ...@@ -88,13 +92,13 @@ extern int find_other_exec(const char *argv0, const char *target,
* See the "Notes" section about quotes at: * See the "Notes" section about quotes at:
* http://home.earthlink.net/~rlively/MANUALS/COMMANDS/C/CMD.HTM * http://home.earthlink.net/~rlively/MANUALS/COMMANDS/C/CMD.HTM
*/ */
#ifdef WIN32 #if defined(WIN32) && !defined(__CYGWIN__)
#define SYSTEMQUOTE "\"" #define SYSTEMQUOTE "\""
#else #else
#define SYSTEMQUOTE "" #define SYSTEMQUOTE ""
#endif #endif
#ifdef WIN32 #if defined(WIN32) && !defined(__CYGWIN__)
#define HOMEDIR "USERPROFILE" #define HOMEDIR "USERPROFILE"
#else #else
#define HOMEDIR "HOME" #define HOMEDIR "HOME"
...@@ -163,8 +167,9 @@ extern int pgunlink(const char *path); ...@@ -163,8 +167,9 @@ extern int pgunlink(const char *path);
* Cygwin has its own symlinks which work on Win95/98/ME where * Cygwin has its own symlinks which work on Win95/98/ME where
* junction points don't, so use it instead. We have no way of * junction points don't, so use it instead. We have no way of
* knowing what type of system Cygwin binaries will be run on. * knowing what type of system Cygwin binaries will be run on.
* Note: Some CYGWIN includes might #define WIN32.
*/ */
#ifdef WIN32 #if defined(WIN32) && !defined(__CYGWIN__)
extern int pgsymlink(const char *oldpath, const char *newpath); extern int pgsymlink(const char *oldpath, const char *newpath);
#define symlink(oldpath, newpath) pgsymlink(oldpath, newpath) #define symlink(oldpath, newpath) pgsymlink(oldpath, newpath)
#endif #endif
...@@ -173,7 +178,7 @@ extern int pgsymlink(const char *oldpath, const char *newpath); ...@@ -173,7 +178,7 @@ extern int pgsymlink(const char *oldpath, const char *newpath);
extern bool rmtree(char *path, bool rmtopdir); extern bool rmtree(char *path, bool rmtopdir);
#ifdef WIN32 #if defined(WIN32) && !defined(__CYGWIN__)
/* open() replacement to allow delete of held files */ /* open() replacement to allow delete of held files */
#ifndef WIN32_CLIENT_ONLY #ifndef WIN32_CLIENT_ONLY
...@@ -266,7 +271,7 @@ extern void srandom(unsigned int seed); ...@@ -266,7 +271,7 @@ extern void srandom(unsigned int seed);
/* thread.h */ /* thread.h */
extern char *pqStrerror(int errnum, char *strerrbuf, size_t buflen); extern char *pqStrerror(int errnum, char *strerrbuf, size_t buflen);
#ifndef WIN32 #if !defined(WIN32) || defined(__CYGWIN__)
extern int pqGetpwuid(uid_t uid, struct passwd * resultbuf, char *buffer, extern int pqGetpwuid(uid_t uid, struct passwd * resultbuf, char *buffer,
size_t buflen, struct passwd ** result); size_t buflen, struct passwd ** result);
#endif #endif
......
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
# Portions Copyright (c) 1996-2004, PostgreSQL Global Development Group # Portions Copyright (c) 1996-2004, PostgreSQL Global Development Group
# Portions Copyright (c) 1994, Regents of the University of California # Portions Copyright (c) 1994, Regents of the University of California
# #
# $PostgreSQL: pgsql/src/interfaces/libpq/Makefile,v 1.120 2004/10/16 22:52:49 tgl Exp $ # $PostgreSQL: pgsql/src/interfaces/libpq/Makefile,v 1.121 2004/11/17 17:46:19 tgl Exp $
# #
#------------------------------------------------------------------------- #-------------------------------------------------------------------------
...@@ -31,6 +31,10 @@ OBJS= fe-auth.o fe-connect.o fe-exec.o fe-misc.o fe-print.o fe-lobj.o \ ...@@ -31,6 +31,10 @@ OBJS= fe-auth.o fe-connect.o fe-exec.o fe-misc.o fe-print.o fe-lobj.o \
md5.o ip.o wchar.o encnames.o noblock.o pgstrcasecmp.o thread.o \ md5.o ip.o wchar.o encnames.o noblock.o pgstrcasecmp.o thread.o \
$(filter crypt.o getaddrinfo.o inet_aton.o open.o snprintf.o strerror.o, $(LIBOBJS)) $(filter crypt.o getaddrinfo.o inet_aton.o open.o snprintf.o strerror.o, $(LIBOBJS))
ifeq ($(PORTNAME), cygwin)
override shlib = cyg$(NAME)$(DLSUFFIX)
endif
ifeq ($(PORTNAME), win32) ifeq ($(PORTNAME), win32)
OBJS += win32.o libpqrc.o OBJS += win32.o libpqrc.o
libpqrc.o : libpq.rc libpqrc.o : libpq.rc
......
...@@ -2,5 +2,6 @@ SRCH_LIB="/usr/local/lib" ...@@ -2,5 +2,6 @@ SRCH_LIB="/usr/local/lib"
# This is required to link pg_dump because it finds pg_toupper() in # This is required to link pg_dump because it finds pg_toupper() in
# libpq and pgport # libpq and pgport
LDFLAGS="-Wl,--allow-multiple-definition" LDFLAGS="-Wl,--allow-multiple-definition -Wl,--enable-auto-import"
# --enable-auto-import gets rid of a diagnostics linker message
LDFLAGS_SL="-Wl,--enable-auto-import"
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment