Annotation of Gnu-Mach/Makefile.am, revision 1.1.1.1

1.1       root        1: # Makefile for GNU Mach.
                      2: 
                      3: # Copyright (C) 2006, 2007, 2008, 2009, 2013 Free Software Foundation, Inc.
                      4: 
                      5: # This program is free software; you can redistribute it and/or modify it
                      6: # under the terms of the GNU General Public License as published by the
                      7: # Free Software Foundation; either version 2, or (at your option) any later
                      8: # version.
                      9: # 
                     10: # This program is distributed in the hope that it will be useful, but
                     11: # WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
                     12: # or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
                     13: # for more details.
                     14: # 
                     15: # You should have received a copy of the GNU General Public License along
                     16: # with this program; if not, write to the Free Software Foundation, Inc.,
                     17: # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
                     18: 
                     19: #
                     20: # Various definitions of the Automake environment.
                     21: #
                     22: # These will be augmented below.
                     23: #
                     24: 
                     25: SUBDIRS =
                     26: DIST_SUBDIRS =
                     27: EXTRA_DIST =
                     28: DISTCHECK_CONFIGURE_FLAGS =
                     29: noinst_LIBRARIES =
                     30: noinst_PROGRAMS =
                     31: TESTS=
                     32: info_TEXINFOS =
                     33: MOSTLYCLEANFILES =
                     34: DISTCLEANFILES =
                     35: AM_CPPFLAGS =
                     36: AM_CCASFLAGS =
                     37: AM_CFLAGS =
                     38: AM_LDFLAGS =
                     39: 
                     40: #
                     41: # Compilation flags
                     42: #
                     43: 
                     44: AM_CPPFLAGS += \
                     45:        -nostdinc -imacros config.h
                     46: 
                     47: AM_CPPFLAGS += \
                     48:        -I$(systype) \
                     49:        -I. \
                     50:        -I$(top_srcdir)/$(systype) \
                     51:        -I$(top_srcdir)/$(systype)/include/mach/sa \
                     52:        -I$(top_srcdir)/include
                     53: 
                     54: AM_CFLAGS += \
                     55:        -fno-builtin-log
                     56: 
                     57: # Yes, this makes the eyes hurt.  But perhaps someone will finally take care of
                     58: # all that scruffy Mach code...  Also see <http://savannah.gnu.org/task/?5726>.
                     59: AM_CFLAGS += \
                     60:        -Wall
                     61: 
                     62: # See <http://lists.gnu.org/archive/html/bug-hurd/2006-01/msg00148.html>.
                     63: AM_CFLAGS += \
                     64:        -fno-strict-aliasing
                     65: 
                     66: # The smashing stack protector might be enabled by default, but might emit
                     67: # unsuitable code.
                     68: if disable_smashing_stack_protector
                     69: AM_CFLAGS += \
                     70:        -fno-stack-protector
                     71: endif
                     72: 
                     73: #
                     74: # Silent build support.
                     75: #
                     76: 
                     77: AWK_V = $(AWK_V_$(V))
                     78: AWK_V_ = $(AWK_V_$(AM_DEFAULT_VERBOSITY))
                     79: AWK_V_0 = @echo "  AWK    $@";
                     80: 
                     81: GZIP_V = $(GZIP_V_$(V))
                     82: GZIP_V_ = $(GZIP_V_$(AM_DEFAULT_VERBOSITY))
                     83: GZIP_V_0 = @echo "  GZIP   $@";
                     84: 
                     85: NM_V = $(NM_V_$(V))
                     86: NM_V_ = $(NM_V_$(AM_DEFAULT_VERBOSITY))
                     87: NM_V_0 = @echo "  NM     $@";
                     88: 
                     89: MIGCOM_V = $(MIGCOM_V_$(V))
                     90: MIGCOM_V_ = $(MIGCOM_V_$(AM_DEFAULT_VERBOSITY))
                     91: MIGCOM_V_0 = @echo "  MIG    $@";
                     92: 
                     93: #
                     94: # MIG Setup.
                     95: #
                     96: 
                     97: # MIGCOM.
                     98: MIGCOM = $(MIG) -n -cc cat - /dev/null
                     99: 
                    100: # We need this because we use $(CPP) to preprocess MIG .defs files.
                    101: CPP = @CPP@ -x c
                    102: 
                    103: #
                    104: # Other Tools' Configuration.
                    105: #
                    106: 
                    107: # Don't needlessly overwrite files that whose contents haven't changed.  This
                    108: # helps for avoinding unneccessary recompilation cycles when keeping
                    109: # cross-compilation toolchains up-to-date.  Thus, unconditionally use the
                    110: # `install-sh' that is supplied by GNU Automake 1.10.1, as the GNU Coreutils
                    111: # one doesn't provide this functionality yet (TODO: change that).  TODO:
                    112: # `build-aux' is hardcoded.
                    113: install_sh = $(SHELL) $(abs_srcdir)/build-aux/install-sh -C
                    114: INSTALL = $(install_sh)
                    115: 
                    116: #
                    117: # The main kernel functionality.
                    118: #
                    119: 
                    120: noinst_LIBRARIES += \
                    121:        libkernel.a
                    122: libkernel_a_SOURCES =
                    123: nodist_libkernel_a_SOURCES =
                    124: MOSTLYCLEANFILES += \
                    125:        $(nodist_libkernel_a_SOURCES)
                    126: 
                    127: gnumach_o_LDADD = \
                    128:        libkernel.a
                    129: 
                    130: gnumach_SOURCES =
                    131: gnumach_LINKFLAGS =
                    132: 
                    133: # Makerules: how to do some things.
                    134: include Makerules.am
                    135: 
                    136: # Main Makefile fragment.
                    137: include Makefrag.am
                    138: 
                    139: # Test suite.
                    140: include tests/Makefrag.am
                    141: 
                    142: # Documentation.
                    143: include doc/Makefrag.am
                    144: 
                    145: #
                    146: # Kernel Image
                    147: #
                    148: 
                    149: # We need the following junk because of the include-files-from-libc.a magic.
                    150: # TODO.  Is the following kosher from a Automake point of view?  (I.e. a
                    151: # program `gnumach.o' that is then later used again as an object file.)
                    152: gnumach_o_SOURCES =
                    153: # TODO.  ``-u _start''.  System dependent?
                    154: gnumach_o_LINK = $(LD) -u _start -r -o $@
                    155: noinst_PROGRAMS += \
                    156:        gnumach.o
                    157: 
                    158: # This is the list of routines we decide is OK to steal from the C library.
                    159: clib_routines := memcmp memcpy memmove                         \
                    160:                 strchr strstr strsep strtok                    \
                    161:                 htonl htons ntohl ntohs                        \
                    162:                 udivdi3 __udivdi3                              \
                    163:                 __rel_iplt_start __rel_iplt_end                \
                    164:                 _START _start etext _edata end _end # actually ld magic, not libc.
                    165: gnumach-undef: gnumach.$(OBJEXT)
                    166:        $(NM_V) $(NM) -u $< | sed 's/  *U  *//' | sort -u > $@
                    167: MOSTLYCLEANFILES += gnumach-undef
                    168: gnumach-undef-bad: gnumach-undef Makefile
                    169:        $(AM_V_GEN) sed '$(foreach r,$(clib_routines),/^$r$$/d;)' $< > $@
                    170: MOSTLYCLEANFILES += gnumach-undef-bad
                    171: clib-routines.o: gnumach-undef gnumach-undef-bad
                    172:        $(AM_V_at) if test -s gnumach-undef-bad; \
                    173:        then cat gnumach-undef-bad; exit 2; else true; fi
                    174:        $(AM_V_CCLD) $(CCLD) -nostdlib -nostartfiles -r -static \
                    175:          -o $@ `sed 's/^/-Wl,-u,/' < $<` -x c /dev/null -lc -lgcc
                    176: 
                    177: gnumach_LINK = $(LD) $(LINKFLAGS) $(gnumach_LINKFLAGS) -o $@
                    178: gnumach_LDADD = gnumach.o clib-routines.o
                    179: 
                    180: #
                    181: # Installation.
                    182: #
                    183: 
                    184: exec_bootdir = \
                    185:        $(exec_prefix)/boot
                    186: exec_boot_PROGRAMS = \
                    187:        gnumach
                    188: 
                    189: #
                    190: # Building a distribution.
                    191: #
                    192: 
                    193: EXTRA_DIST += \
                    194:        config.status.dep.patch
                    195: 
                    196: EXTRA_DIST += \
                    197:        DEVELOPMENT
                    198: 
                    199: dist-hook: dist-rm-CVS gen-ChangeLog
                    200: 
                    201: .PHONY: dist-rm-CVS
                    202: dist-rm-CVS:
                    203: # Try to be very safe with respect to spuriously removing various directories
                    204: # in case of an error.
                    205:        find $(distdir)/ -type d -name CVS | while read d; do   \
                    206:          rm -f "$$d"/{Entries,Repository,Root,Tag} &&          \
                    207:          rmdir "$$d";                                          \
                    208:        done
                    209: 
                    210: gen_start_commit = e227045b06d62ee7d2fbab9d5ade9030ff43170b
                    211: ChangeLog_files = ChangeLog ChangeLog.0 ChangeLog.00
                    212: .PHONY: gen-ChangeLog
                    213: gen-ChangeLog:
                    214:        $(AM_V_GEN)if test -d $(top_srcdir)/.git; then                  \
                    215:          (cd $(top_srcdir)/ &&                                         \
                    216:          ./gitlog-to-changelog --strip-tab                             \
                    217:            $(gen_start_commit).. &&                                    \
                    218:          echo) >> $(distdir)/cl-t &&                                   \
                    219:          for f in $(ChangeLog_files); do                               \
                    220:            (cd $(top_srcdir)/ &&                                       \
                    221:            git show $(gen_start_commit):$$f) >> $(distdir)/cl-t &&     \
                    222:            rm -f $(distdir)/$$f &&                                     \
                    223:            mv $(distdir)/cl-t $(distdir)/$$f                           \
                    224:            || exit $$?;                                                \
                    225:          done;                                                         \
                    226:        fi
                    227: 
                    228: DISTCLEANFILES += \
                    229:        Makefile.orig \
                    230:        config.status.orig
                    231: 
                    232: #
                    233: # Legacy support.
                    234: #
                    235: 
                    236: install-headers: install-data
                    237:        @echo '*****************************************************'
                    238:        @echo '* As you can see above, I was so kind to rewrite your'
                    239:        @echo '* `make $@'\'
                    240:        @echo '* into'
                    241:        @echo '* `make $^'\'
                    242:        @echo '* which is how it is to be spelled these days.'
                    243:        @echo '*'
                    244:        @echo '* Please get your instructions fixed.'
                    245:        @echo '*****************************************************'
                    246:        @echo
                    247:        @echo 'Penalty:'
                    248:        sleep 20

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.