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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.