-# Need to set CFLAGS and LDFLAGS here. sb-posix, sb-grovel, and
-# sb-bsd-sockets depends upon these being set on x86_64. Setting these
-# in their Makefile's is not adequate since their asd files are
-# invoked when loaded from other modules which don't require these
-# environmental values in their Makefile's.
-
-UNAME:=$(shell uname -m)
-export CFLAGS=-fPIC
-ifeq (solaris,$(UNAME))
- export LDFLAGS=-shared -lresolv -lsocket -lnsl
-else
- ifeq (Darwin,$(UNAME))
- export LDFLAGS=-bundle
- else
- ifeq (x86_64,$(UNAME))
- export LDFLAGS=-m32 -shared
- export CFLAGS+= -m32
- else
- export LDFLAGS=-shared
- endif
- endif
+# We need to extend flags to the C compiler and the linker
+# here. sb-posix, sb-grovel, and sb-bsd-sockets depends upon these
+# being set on x86_64. Setting these in their Makefiles is not
+# adequate since, while we're building contrib, they can be compiled
+# directly via ASDF from a non-C-aware module which has these tricky
+# ones as dependencies.
+
+UNAME:=$(shell uname -s)
+
+ifeq (SunOS,$(UNAME))
+ EXTRA_CFLAGS=-D_XOPEN_SOURCE=500 -D__EXTENSIONS__
+endif
+ifeq (CYGWIN,$(findstring CYGWIN,$(UNAME)))
+ EXTRA_CFLAGS=-mno-cygwin