Re: superfluous GNUism in the makefile
Taylor R Campbell <[email protected]>
| Newsgroups | gmane.lisp.scheme.scheme48 |
|---|---|
| Message-ID | <[email protected]> |
Date: Tue, 18 Aug 2009 00:50:11 +0700 From: Ivan Shmakov <[email protected]> At the very least, the Makefile works with pmake(1). I'm not quite fluent in the various Makes, but I've got the impression that $< will work for with any modern Make. NetBSD make at least doesn't set $< in explicit rules; nor does POSIX make. This is documented and intentional. The manual for FreeBSD make doesn't say one way or another whether $< (alternatively spelled ${.IMPSRC}) is defined in explicit rules, or if it is what value it has. Attached is a transcript of an attempt to build Scheme48 using NetBSD make. The last make incantation happened after I changed $^ to $< in the makefile, which, as you can see, had no effect. (`pmake' is the name of the ancestor of FreeBSD make, NetBSD make, OpenBSD make, and probably several others. Its descendants are all fairly similar to one another. I don't know whether the original pmake is still maintained separately.)
transcript.txt
(text/plain, 10.2 KB)
Script started on Mon Aug 17 18:16:37 2009 smalltalk$ cd /tmp smalltalk$ curl -s -O http://s48.org/1.8/scheme48-1.8.tgz smalltalk$ gunzip -c < scheme48-1.8.tgz | tar xf - smalltalk$ cd scheme48-1.8 smalltalk$ ./configure checking build system type... i386-unknown-netbsdelf5.0. checking host system type... i386-unknown-netbsdelf5.0. checking for gcc... gcc checking for C compiler default output file name... a.out checking whether the C compiler works... yes checking whether we are cross compiling... no checking for suffix of executables... checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking whether we must build a 32bit binary... no checking bits per byte... 8 checking size of void *... 4 checking for BIT_SUFFIX... 32 checking whether we are building a Universal Binary... no checking how to compile position independent code... -fPIC checking -rdynamic... yes checking LDFLAGS_VM... checking for library containing strerror... none required checking for inline keyword... yes checking for a BSD-compatible install... /usr/bin/install -c checking for main in -lm... yes checking for main in -ldl... no checking for main in -lmld... no checking for main in -lnsl... no checking for main in -lgen... no checking for main in -lsocket... no checking for getpwnam in -lsun... no checking for RISC/OS POSIX library lossage checking for an ANSI C-conforming const... yes checking for socklen_t... yes checking return type of signal handlers... void checking how to run the C preprocessor... gcc -E checking for grep that handles long lines and -e... /usr/bin/grep checking for egrep... /usr/bin/grep -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking for uintptr_t... yes checking for uint16_t... yes checking libgen.h usability... yes checking libgen.h presence... yes checking for libgen.h... yes checking sys/timeb.h usability... yes checking sys/timeb.h presence... yes checking for sys/timeb.h... yes checking posix/time.h usability... no checking posix/time.h presence... no checking for posix/time.h... no checking sys/select.h usability... yes checking sys/select.h presence... yes checking for sys/select.h... yes checking sysexits.h usability... yes checking sysexits.h presence... yes checking for sysexits.h... yes checking langinfo.h usability... yes checking langinfo.h presence... yes checking for langinfo.h... yes checking for nl_langinfo... yes checking for gettimeofday... yes checking for ftime... no checking for select... yes checking for setitimer... yes checking for sigaction... yes checking poll.h usability... yes checking poll.h presence... yes checking for poll.h... yes checking for poll... yes checking for dlopen... yes checking for socket... yes checking for chroot... yes checking for strerror... yes checking environ... using environ checking __NEXT__... no checking IEEE floating-point endianness... least first checking for ld... ld checking compile and link flags for dynamic externals... -fPIC, -shared checking pthread.h usability... yes checking pthread.h presence... yes checking for pthread.h... yes checking Pthreads support... -pthread (compile) -pthread (link) checking -munaligned-doubles... no configure: creating ./config.status config.status: creating Makefile config.status: creating c/sysdep.h config.status: creating c/scheme48arch.h smalltalk$ make gcc -c -g -O2 -pthread -o c/main.o -DDEFAULT_IMAGE_NAME=\"/usr/local/lib/scheme48-1.`cat ./build/minor-version-number`/scheme48.image\" -DHAVE_CONFIG_H -D__COMPILING_SCHEME48_ITSELF__ -DS48_HOST_ARCHITECTURE=\"i386-unknown-netbsdelf5.0.\" ./c/main.c gcc -c -DHAVE_CONFIG_H -D__COMPILING_SCHEME48_ITSELF__ -DS48_HOST_ARCHITECTURE=\"i386-unknown-netbsdelf5.0.\" -I ./c -I./c -I./c/bibop -g -O2 -pthread -o c/scheme48vm-32.o c/scheme48vm-32.c gcc -c -DHAVE_CONFIG_H -D__COMPILING_SCHEME48_ITSELF__ -DS48_HOST_ARCHITECTURE=\"i386-unknown-netbsdelf5.0.\" -I ./c -I./c -I./c/bibop -g -O2 -pthread -o c/extension.o c/extension.c gcc -c -DHAVE_CONFIG_H -D__COMPILING_SCHEME48_ITSELF__ -DS48_HOST_ARCHITECTURE=\"i386-unknown-netbsdelf5.0.\" -I ./c -I./c -I./c/bibop -g -O2 -pthread -o c/free.o c/free.c gcc -c -DHAVE_CONFIG_H -D__COMPILING_SCHEME48_ITSELF__ -DS48_HOST_ARCHITECTURE=\"i386-unknown-netbsdelf5.0.\" -I ./c -I./c -I./c/bibop -g -O2 -pthread -o c/double_to_string.o c/double_to_string.c gcc -c -DHAVE_CONFIG_H -D__COMPILING_SCHEME48_ITSELF__ -DS48_HOST_ARCHITECTURE=\"i386-unknown-netbsdelf5.0.\" -I ./c -I./c -I./c/bibop -g -O2 -pthread -o c/bignum.o c/bignum.c gcc -c -DHAVE_CONFIG_H -D__COMPILING_SCHEME48_ITSELF__ -DS48_HOST_ARCHITECTURE=\"i386-unknown-netbsdelf5.0.\" -I ./c -I./c -I./c/bibop -g -O2 -pthread -o c/external.o c/external.c gcc -c -DHAVE_CONFIG_H -D__COMPILING_SCHEME48_ITSELF__ -DS48_HOST_ARCHITECTURE=\"i386-unknown-netbsdelf5.0.\" -I ./c -I./c -I./c/bibop -g -O2 -pthread -o c/external-lib.o c/external-lib.c gcc -c -DHAVE_CONFIG_H -D__COMPILING_SCHEME48_ITSELF__ -DS48_HOST_ARCHITECTURE=\"i386-unknown-netbsdelf5.0.\" -I ./c -I./c -I./c/bibop -g -O2 -pthread -o c/external-init.o c/external-init.c gcc -c -DHAVE_CONFIG_H -D__COMPILING_SCHEME48_ITSELF__ -DS48_HOST_ARCHITECTURE=\"i386-unknown-netbsdelf5.0.\" -I ./c -I./c -I./c/bibop -g -O2 -pthread -o c/init.o c/init.c gcc -c -DHAVE_CONFIG_H -D__COMPILING_SCHEME48_ITSELF__ -DS48_HOST_ARCHITECTURE=\"i386-unknown-netbsdelf5.0.\" -I ./c -I./c -I./c/bibop -g -O2 -pthread -o c/scheme48-twospace-heap-32.o c/scheme48-twospace-heap-32.c gcc -c -DHAVE_CONFIG_H -D__COMPILING_SCHEME48_ITSELF__ -DS48_HOST_ARCHITECTURE=\"i386-unknown-netbsdelf5.0.\" -I ./c -I./c -I./c/bibop -g -O2 -pthread -o c/unix/misc.o c/unix/misc.c gcc -c -DHAVE_CONFIG_H -D__COMPILING_SCHEME48_ITSELF__ -DS48_HOST_ARCHITECTURE=\"i386-unknown-netbsdelf5.0.\" -I ./c -I./c -I./c/bibop -g -O2 -pthread -o c/unix/io.o c/unix/io.c gcc -c -DHAVE_CONFIG_H -D__COMPILING_SCHEME48_ITSELF__ -DS48_HOST_ARCHITECTURE=\"i386-unknown-netbsdelf5.0.\" -I ./c -I./c -I./c/bibop -g -O2 -pthread -o c/unix/fd-io.o c/unix/fd-io.c gcc -c -DHAVE_CONFIG_H -D__COMPILING_SCHEME48_ITSELF__ -DS48_HOST_ARCHITECTURE=\"i386-unknown-netbsdelf5.0.\" -I ./c -I./c -I./c/bibop -g -O2 -pthread -o c/unix/event.o c/unix/event.c gcc -c -DHAVE_CONFIG_H -D__COMPILING_SCHEME48_ITSELF__ -DS48_HOST_ARCHITECTURE=\"i386-unknown-netbsdelf5.0.\" -I ./c -I./c -I./c/bibop -g -O2 -pthread -o c/unix/socket.o c/unix/socket.c c/unix/socket.c: In function 'gethostbyaddr_thread': c/unix/socket.c:452: warning: passing argument 1 of 'gethostbyaddr' from incompatible pointer type gcc -c -DHAVE_CONFIG_H -D__COMPILING_SCHEME48_ITSELF__ -DS48_HOST_ARCHITECTURE=\"i386-unknown-netbsdelf5.0.\" -I ./c -I./c -I./c/bibop -g -O2 -pthread -o c/unix/dynlink.o c/unix/dynlink.c gcc -c -DHAVE_CONFIG_H -D__COMPILING_SCHEME48_ITSELF__ -DS48_HOST_ARCHITECTURE=\"i386-unknown-netbsdelf5.0.\" -I ./c -I./c -I./c/bibop -g -O2 -pthread -o c/unix/sysexits.o c/unix/sysexits.c gcc -c -DHAVE_CONFIG_H -D__COMPILING_SCHEME48_ITSELF__ -DS48_HOST_ARCHITECTURE=\"i386-unknown-netbsdelf5.0.\" -I ./c -I./c -I./c/bibop -g -O2 -pthread -o c/fake/glue.o c/fake/glue.c echo 'EXPORTS' > ./c/scheme48.def && cat ./c/scheme48.h ./c/fd-io.h ./c/event.h | egrep '^S48_EXTERN' | sed 's,^S48_EXTERN.*\(s48_[a-zA-Z0-9_]*\)(.*$,\1,' | sed 's,^S48_EXTERN.*\(ps_[a-zA-Z0-9_]*\)(.*$,\1,' | sed 's,^S48_EXTERN.*\(s48_[a-zA-Z0-9_]*\).*$,\1,' >> ./c/scheme48.def gcc -rdynamic -pthread -g -O2 -pthread -o scheme48vm c/main.o c/scheme48vm-32.o c/extension.o c/free.o c/double_to_string.o c/bignum.o c/external.o c/external-lib.o c/external-init.o c/init.o c/scheme48-twospace-heap-32.o c/unix/misc.o c/unix/io.o c/unix/fd-io.o c/unix/event.o -lm c/unix/socket.o c/unix/dynlink.o c/unix/sysexits.o c/fake/glue.o if test -x /usr/bin/dlltool; then dlltool --dllname scheme48vm.exe --output-lib scheme48vm.a --def ./c/scheme48.def; fi gcc -c -DHAVE_CONFIG_H -D__COMPILING_SCHEME48_ITSELF__ -DS48_HOST_ARCHITECTURE=\"i386-unknown-netbsdelf5.0.\" -I ./c -I./c -I./c/bibop -g -O2 -pthread -fPIC -o c/posix/user.o c/posix/user.c gcc -c -DHAVE_CONFIG_H -D__COMPILING_SCHEME48_ITSELF__ -DS48_HOST_ARCHITECTURE=\"i386-unknown-netbsdelf5.0.\" -I ./c -I./c -I./c/bibop -g -O2 -pthread -fPIC -o c/posix/regexp.o c/posix/regexp.c gcc -c -DHAVE_CONFIG_H -D__COMPILING_SCHEME48_ITSELF__ -DS48_HOST_ARCHITECTURE=\"i386-unknown-netbsdelf5.0.\" -I ./c -I./c -I./c/bibop -g -O2 -pthread -fPIC -o c/posix/proc-env.o c/posix/proc-env.c gcc -c -DHAVE_CONFIG_H -D__COMPILING_SCHEME48_ITSELF__ -DS48_HOST_ARCHITECTURE=\"i386-unknown-netbsdelf5.0.\" -I ./c -I./c -I./c/bibop -g -O2 -pthread -fPIC -o c/posix/proc.o c/posix/proc.c gcc -c -DHAVE_CONFIG_H -D__COMPILING_SCHEME48_ITSELF__ -DS48_HOST_ARCHITECTURE=\"i386-unknown-netbsdelf5.0.\" -I ./c -I./c -I./c/bibop -g -O2 -pthread -fPIC -o c/posix/io.o c/posix/io.c gcc -c -DHAVE_CONFIG_H -D__COMPILING_SCHEME48_ITSELF__ -DS48_HOST_ARCHITECTURE=\"i386-unknown-netbsdelf5.0.\" -I ./c -I./c -I./c/bibop -g -O2 -pthread -fPIC -o c/posix/dir.o c/posix/dir.c gcc -c -DHAVE_CONFIG_H -D__COMPILING_SCHEME48_ITSELF__ -DS48_HOST_ARCHITECTURE=\"i386-unknown-netbsdelf5.0.\" -I ./c -I./c -I./c/bibop -g -O2 -pthread -fPIC -o c/posix/posix.o c/posix/posix.c ld -o c/posix.so c/posix/user.o c/posix/regexp.o c/posix/proc-env.o c/posix/proc.o c/posix/io.o c/posix/dir.o c/posix/posix.o -shared gcc -c -DHAVE_CONFIG_H -D__COMPILING_SCHEME48_ITSELF__ -DS48_HOST_ARCHITECTURE=\"i386-unknown-netbsdelf5.0.\" -I ./c -I./c -I./c/bibop -g -O2 -pthread -fPIC -o c/srfi-27.o c/srfi-27.c ld -o c/srfi-27.so -shared ld: no input files *** Error code 1 Stop. make: stopped in /tmp/scheme48-1.8 smalltalk$ make ld -o c/srfi-27.so -shared ld: no input files *** Error code 1 Stop. make: stopped in /tmp/scheme48-1.8 smalltalk$ ^D Script done on Mon Aug 17 18:18:58 2009