diff --git a/Makefile b/Makefile index 18696fa7bc..4f55f631b9 100644 --- a/Makefile +++ b/Makefile @@ -13,8 +13,14 @@ # a bundled SHA1 routine optimized for PowerPC. # # Define NEEDS_SSL_WITH_CRYPTO if you need -lcrypto with -lssl (Darwin). +# # Define NEEDS_LIBICONV if linking with libc is not enough (Darwin). - +# +# Define NEEDS_SOCKET if linking with libc is not enough (SunOS, +# Patrick Mauritz). +# +# Define NO_GETDOMAINNAME if your library lack it (SunOS, Patrick Mauritz). +# # Define COLLISION_CHECK below if you believe that SHA1's # 1461501637330902918203684832716283019655932542976 hashes do not give you # sufficient guarantee that no collisions between objects will ever happen. @@ -37,7 +43,7 @@ GIT_VERSION = 0.99.6 CFLAGS = -g -O2 -Wall -ALL_CFLAGS = $(CFLAGS) $(DEFINES) +ALL_CFLAGS = $(CFLAGS) $(PLATFORM_DEFINES) $(DEFINES) prefix = $(HOME) bindir = $(prefix)/bin @@ -131,6 +137,10 @@ ifeq ($(shell uname -s),Darwin) NEEDS_SSL_WITH_CRYPTO = YesPlease NEEDS_LIBICONV = YesPlease endif +ifeq ($(shell uname -s),SunOS) + NEEDS_SOCKET = YesPlease + PLATFORM_DEFINES += -DNO_GETDOMAINNAME=1 +endif ifndef NO_OPENSSL LIB_OBJS += epoch.o @@ -162,6 +172,10 @@ else LIBS += $(LIB_4_CRYPTO) endif endif +ifdef NEEDS_SOCKET + LIBS += -lsocket + SIMPLE_LIB += -lsocket +endif DEFINES += '-DSHA1_HEADER=$(SHA1_HEADER)' diff --git a/convert-objects.c b/convert-objects.c index 9ad0c77678..073cab592f 100644 --- a/convert-objects.c +++ b/convert-objects.c @@ -1,4 +1,5 @@ #define _XOPEN_SOURCE /* glibc2 needs this */ +#define __EXTENSIONS__ /* solaris needs this */ #include #include #include "cache.h" diff --git a/ident.c b/ident.c index 0fe81f6900..7e917f74de 100644 --- a/ident.c +++ b/ident.c @@ -36,12 +36,13 @@ int setup_ident(void) memcpy(real_email, pw->pw_name, len); real_email[len++] = '@'; gethostname(real_email + len, sizeof(real_email) - len); +#ifndef NO_GETDOMAINNAME if (!strchr(real_email+len, '.')) { len = strlen(real_email); real_email[len++] = '.'; getdomainname(real_email+len, sizeof(real_email)-len); } - +#endif /* And set the default date */ datestamp(real_date, sizeof(real_date)); return 0;