The basic building strategy and general assumptions have been detailed on a previous post: Staged Building:
$ pwd
/stage/build
$ ./gnu-build-preparation ../source/.../gperf-3.1.tar.gz
...
$ cd gperf/gperf-3.1-32
$ source ../setenv-3.1 32
Configuration file [version 4]: /stage/build/gperf/ld.config-32
Platform: 32-bit LSB 80386
Default Library Path (ELF): /opt/gnu/lib:/opt/usr/lib:/lib:/usr/lib
Trusted Directories (ELF): /lib/secure:/usr/lib/secure (... default)
Command line:
crle
-c /stage/build/gperf/ld.config-32
-l /opt/gnu/lib:/opt/usr/lib:/lib:/usr/lib
LD_CONFIG_32=/stage/build/gperf/ld.config-32
CONFIG_SHELL=
CC=/usr/bin/gcc CFLAGS=-m32 -march=nocona -mtune=nocona -std=gnu89
CXX=/usr/bin/g++ CXXFLAGS=-m32 -march=nocona -mtune=nocona -std=gnu++98
LD=/usr/bin/ld LDFLAGS=-m32 -march=nocona -mtune=nocona
PATH=/opt/gnu/bin:/opt/usr/bin:/usr/gnu/bin:/usr/bin:/usr/sbin
PKG_CONFIG_PATH=/opt/usr/lib/pkgconfig
Suggested build sequence:
Fine-tune/fix config.h.in, Makefile.in and others...
$ ./configure \
--build=i386-pc-solaris2.11 \
--prefix=/opt/... \
...
$ gmake -j2
$ su
# source ../setenv-3.1 32
For IPS package:
# gmake DESTDIR=/stage/prototype/gperf/3.1/32 install
For immediate use:
# gmake install
# zfs snapshot -r .../opt/...@gperf-3.1
$ ./configure \
--build=i386-pc-solaris2.11 \
--prefix=/opt/gnu
checking whether make sets $(MAKE)... yes
configure: creating ./config.status
config.status: creating Makefile
=== configuring in lib (/stage/build/gperf/gperf-3.1-32/lib)
configure: running /bin/sh ./configure --disable-option-checking '--prefix=/opt/gnu' '--build=i386-pc-solaris2.11' 'build_alias=i386-pc-solaris2.11' --cache-file=/dev/null --srcdir=.
checking whether make sets $(MAKE)... yes
checking for gcc... /usr/bin/gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether /usr/bin/gcc accepts -g... yes
checking for /usr/bin/gcc option to accept ISO C89... none needed
checking how to run the C preprocessor... /usr/bin/gcc -E
checking whether we are using the GNU C++ compiler... yes
checking whether /usr/bin/g++ accepts -g... yes
checking how to run the C++ preprocessor... /usr/bin/g++ -E
checking for ar... ar
checking for ranlib... ranlib
checking for a BSD compatible install... /usr/bin/ginstall -c
configure: creating ./config.status
config.status: creating Makefile
=== configuring in src (/stage/build/gperf/gperf-3.1-32/src)
configure: running /bin/sh ./configure --disable-option-checking '--prefix=/opt/gnu' '--build=i386-pc-solaris2.11' 'build_alias=i386-pc-solaris2.11' --cache-file=/dev/null --srcdir=.
checking whether make sets $(MAKE)... yes
checking for gcc... /usr/bin/gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether /usr/bin/gcc accepts -g... yes
checking for /usr/bin/gcc option to accept ISO C89... none needed
checking how to run the C preprocessor... /usr/bin/gcc -E
checking whether we are using the GNU C++ compiler... yes
checking whether /usr/bin/g++ accepts -g... yes
checking how to run the C++ preprocessor... /usr/bin/g++ -E
checking for a BSD compatible install... /usr/bin/ginstall -c
checking for stack-allocated variable-size arrays... yes
checking for rand in -lm... yes
configure: creating ./config.status
config.status: creating Makefile
config.status: creating config.h
=== configuring in tests (/stage/build/gperf/gperf-3.1-32/tests)
configure: running /bin/sh ./configure --disable-option-checking '--prefix=/opt/gnu' '--build=i386-pc-solaris2.11' 'build_alias=i386-pc-solaris2.11' --cache-file=/dev/null --srcdir=.
checking whether make sets $(MAKE)... yes
checking for gcc... /usr/bin/gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether /usr/bin/gcc accepts -g... yes
checking for /usr/bin/gcc option to accept ISO C89... none needed
checking how to run the C preprocessor... /usr/bin/gcc -E
checking whether we are using the GNU C++ compiler... yes
checking whether /usr/bin/g++ accepts -g... yes
checking how to run the C++ preprocessor... /usr/bin/g++ -E
configure: creating ./config.status
config.status: creating Makefile
=== configuring in doc (/stage/build/gperf/gperf-3.1-32/doc)
configure: running /bin/sh ./configure --disable-option-checking '--prefix=/opt/gnu' '--build=i386-pc-solaris2.11' 'build_alias=i386-pc-solaris2.11' --cache-file=/dev/null --srcdir=.
checking whether make sets $(MAKE)... yes
checking for a BSD compatible install... /usr/bin/ginstall -c
configure: creating ./config.status
config.status: creating Makefile
$ gmake -j2
cd lib; gmake all
gmake[1]: Entering directory `/stage/build/gperf/gperf-3.1-32/lib'
/usr/bin/gcc -m32 -march=nocona -mtune=nocona -std=gnu89 -I. -c ./getopt.c
/usr/bin/gcc -m32 -march=nocona -mtune=nocona -std=gnu89 -I. -c ./getopt1.c
/usr/bin/g++ -m32 -march=nocona -mtune=nocona -std=gnu++98 -I. -c ./getline.cc
/usr/bin/g++ -m32 -march=nocona -mtune=nocona -std=gnu++98 -I. -c ./hash.cc
rm -f libgp.a
ar rc libgp.a getopt.o getopt1.o getline.o hash.o
ranlib libgp.a
gmake[1]: Leaving directory `/stage/build/gperf/gperf-3.1-32/lib'
cd src; gmake all
gmake[1]: Entering directory `/stage/build/gperf/gperf-3.1-32/src'
/usr/bin/g++ -m32 -march=nocona -mtune=nocona -std=gnu++98 -I. -I./../lib -c ./version.cc
/usr/bin/g++ -m32 -march=nocona -mtune=nocona -std=gnu++98 -I. -I./../lib -c ./positions.cc
/usr/bin/g++ -m32 -march=nocona -mtune=nocona -std=gnu++98 -I. -I./../lib -c ./options.cc
/usr/bin/g++ -m32 -march=nocona -mtune=nocona -std=gnu++98 -I. -I./../lib -c ./keyword.cc
/usr/bin/g++ -m32 -march=nocona -mtune=nocona -std=gnu++98 -I. -I./../lib -c ./keyword-list.cc
/usr/bin/g++ -m32 -march=nocona -mtune=nocona -std=gnu++98 -I. -I./../lib -c ./input.cc
/usr/bin/g++ -m32 -march=nocona -mtune=nocona -std=gnu++98 -I. -I./../lib -c ./bool-array.cc
/usr/bin/g++ -m32 -march=nocona -mtune=nocona -std=gnu++98 -I. -I./../lib -c ./hash-table.cc
/usr/bin/g++ -m32 -march=nocona -mtune=nocona -std=gnu++98 -I. -I./../lib -c ./search.cc
/usr/bin/g++ -m32 -march=nocona -mtune=nocona -std=gnu++98 -I. -I./../lib -c ./output.cc
/usr/bin/g++ -m32 -march=nocona -mtune=nocona -std=gnu++98 -I. -I./../lib -c ./main.cc
/usr/bin/g++ -m32 -march=nocona -mtune=nocona -std=gnu++98 -m32 -march=nocona -mtune=nocona -o gperf version.o positions.o options.o keyword.o keyword-list.o input.o bool-array.o hash-table.o search.o output.o main.o ../lib/libgp.a -lm
gmake[1]: Leaving directory `/stage/build/gperf/gperf-3.1-32/src'
cd tests; gmake all
gmake[1]: Entering directory `/stage/build/gperf/gperf-3.1-32/tests'
gmake[1]: Nothing to be done for `all'.
gmake[1]: Leaving directory `/stage/build/gperf/gperf-3.1-32/tests'
cd doc; gmake all
gmake[1]: Entering directory `/stage/build/gperf/gperf-3.1-32/doc'
gmake[1]: Nothing to be done for `all'.
gmake[1]: Leaving directory `/stage/build/gperf/gperf-3.1-32/doc'
$ su
...
# source ../setenv-3.1 32
...
# gmake install
cd lib; gmake install
gmake[1]: Entering directory `/stage/build/gperf/gperf-3.1-32/lib'
gmake[1]: Nothing to be done for `install'.
gmake[1]: Leaving directory `/stage/build/gperf/gperf-3.1-32/lib'
cd src; gmake install
gmake[1]: Entering directory `/stage/build/gperf/gperf-3.1-32/src'
/bin/sh ./../build-aux/mkinstalldirs /opt/gnu/bin
/usr/bin/ginstall -c gperf /opt/gnu/bin/gperf
gmake[1]: Leaving directory `/stage/build/gperf/gperf-3.1-32/src'
cd tests; gmake install
gmake[1]: Entering directory `/stage/build/gperf/gperf-3.1-32/tests'
gmake[1]: Nothing to be done for `install'.
gmake[1]: Leaving directory `/stage/build/gperf/gperf-3.1-32/tests'
cd doc; gmake install
gmake[1]: Entering directory `/stage/build/gperf/gperf-3.1-32/doc'
/bin/sh ./../build-aux/mkinstalldirs /opt/gnu/share/info
/usr/bin/ginstall -c -m 644 ./gperf.info /opt/gnu/share/info/gperf.info
/bin/sh ./../build-aux/mkinstalldirs /opt/gnu/share/man/man1
/usr/bin/ginstall -c -m 644 ./gperf.1 /opt/gnu/share/man/man1/gperf.1
/bin/sh ./../build-aux/mkinstalldirs /opt/gnu/share/doc/
/usr/bin/ginstall -c -m 644 ./gperf.html /opt/gnu/share/doc//gperf.html
gmake[1]: Leaving directory `/stage/build/gperf/gperf-3.1-32/doc'
$ sudo zfs snapshot -r .../opt/gnu@gperf-3.1