diff options
author | 2006-10-31 12:06:56 +1000 | |
---|---|---|
committer | 2006-10-31 12:06:56 +1000 | |
commit | c4a8f4c890231980b367277707bd39fbc1d2e53d (patch) | |
tree | 602945221a8215e13cbd8f026e488180f8dc30b0 /Makefile.in | |
parent | c098cb5c87c2ac0d1e6d4401339c113e2b0a02da (diff) |
Code beutification in build files
darcs-hash:20061031020656-ac50b-2385bb51d7df624e5691b7659120596600fd1d5d.gz
Diffstat (limited to 'Makefile.in')
-rw-r--r-- | Makefile.in | 304 |
1 files changed, 275 insertions, 29 deletions
diff --git a/Makefile.in b/Makefile.in index b6759aa7..9afbfd64 100644 --- a/Makefile.in +++ b/Makefile.in @@ -1,10 +1,10 @@ # -# Copyright (C) 2005 Axel Liljencrantz +# Copyright (C) 2005-2006 Axel Liljencrantz # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 2 -# of the License, or (at your option) any later version. +# as published by the Free Software Foundation; version 2 +# of the License. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -32,11 +32,19 @@ # hallucinations. # + +# # Programs +# + CC := @CC@ INSTALL:=@INSTALL@ + +# # Installation directories +# + prefix = @prefix@ exec_prefix = @exec_prefix@ datadir = @datadir@ @@ -47,51 +55,87 @@ docdir = @docdir@ localedir = @localedir@ prefix = @prefix@ optbindirs = @optbindirs@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ + + +# +# Various flags +# MACROS=-DLOCALEDIR=\"$(localedir)\" -DPREFIX=L\"$(prefix)\" -DDATADIR=L\"$(datadir)\" -DSYSCONFDIR=L\"$(sysconfdir)\" CFLAGS=@CFLAGS@ $(MACROS) CPPFLAGS=@CPPFLAGS@ LDFLAGS= @LIBS@ @LDFLAGS@ + +# # Set to 1 if we have gettext +# + HAVE_GETTEXT=@HAVE_GETTEXT@ + +# #Additional .c files used by common.o. These also have a corresponding #.h file. +# + COMMON_FILES := util.c halloc.c halloc_util.c fallback.c + +# # All objects that the system needs to build fish, except main.o -FISH_OBJS := function.o builtin.o complete.o env.o exec.o \ - expand.o highlight.o history.o kill.o parser.o proc.o reader.o \ - sanity.o tokenizer.o wildcard.o wgetopt.o wutil.o input.o \ - output.o intern.o env_universal.o env_universal_common.o \ - input_common.o event.o signal.o io.o parse_util.o common.o screen.o\ - path.o +# + +FISH_OBJS := function.o builtin.o complete.o env.o exec.o expand.o \ + highlight.o history.o kill.o parser.o proc.o reader.o sanity.o \ + tokenizer.o wildcard.o wgetopt.o wutil.o input.o output.o intern.o \ + env_universal.o env_universal_common.o input_common.o event.o \ + signal.o io.o parse_util.o common.o screen.o path.o + +# # Additional files used by builtin.o +# + BUILTIN_FILES := builtin_help.c builtin_set.c builtin_commandline.c \ builtin_ulimit.c builtin_complete.c builtin_jobs.c + +# # All objects that the system needs to build fish_pager -FISH_PAGER_OBJS := fish_pager.o output.o wutil.o \ - tokenizer.o input_common.o env_universal.o env_universal_common.o \ - common.o +# + +FISH_PAGER_OBJS := fish_pager.o output.o wutil.o tokenizer.o \ + input_common.o env_universal.o env_universal_common.o common.o + +# # All objects that the system needs to build fish_tests +# + FISH_TESTS_OBJS := $(FISH_OBJS) fish_tests.o + +# # All objects that the system needs to build fishd +# + FISHD_OBJS := fishd.o env_universal_common.o wutil.o \ doc_src/fishd.o common.o + +# # All objects needed to build mimedb +# + MIME_OBJS := mimedb.o xdgmimealias.o xdgmime.o xdgmimeglob.o \ xdgmimeint.o xdgmimemagic.o xdgmimeparent.o wutil.o common.o + # # Files containing documentation for builtins. # + BUILTIN_DOC_SRC := doc_src/source.txt doc_src/and.txt \ doc_src/begin.txt doc_src/bg.txt doc_src/bind.txt \ doc_src/block.txt doc_src/break.txt doc_src/builtin.txt \ @@ -105,14 +149,18 @@ BUILTIN_DOC_SRC := doc_src/source.txt doc_src/and.txt \ doc_src/status.txt doc_src/switch.txt doc_src/ulimit.txt \ doc_src/while.txt + # # Files generated by running doxygen on the files in $(BUILTIN_DOC_SRC) # + BUILTIN_DOC_HDR := $(BUILTIN_DOC_SRC:.txt=.doxygen) + # # Files containing documentation for external commands. # + CMD_DOC_SRC := doc_src/contains.txt doc_src/count.txt doc_src/dirh.txt \ doc_src/dirs.txt doc_src/fish.txt doc_src/fish_pager.txt \ doc_src/fishd.txt doc_src/help.txt doc_src/isatty.txt \ @@ -121,25 +169,39 @@ CMD_DOC_SRC := doc_src/contains.txt doc_src/count.txt doc_src/dirh.txt \ doc_src/pushd.txt doc_src/set_color.txt doc_src/trap.txt \ doc_src/type.txt doc_src/umask.txt doc_src/vared.txt + # # Files generated by running doxygen on the files in $(CMD_DOC_SRC) # + CMD_DOC_HDR := $(CMD_DOC_SRC:.txt=.doxygen) + # # Files in the test directory # + TEST_IN := $(wildcard tests/test*.in) + # # Files that should be added to the tar archives # +# # Files in ./doc_src/ +# + DOC_SRC_DIR_FILES := doc_src/Doxyfile.in doc_src/doc.hdr \ $(BUILTIN_DOC_SRC) $(CMD_DOC_SRC) -# Files in ./ + +# +# Files in ./. There is some overlap between the variables in the +# list, so when copying these files, cp will complain that some files +# are specified more than once. +# + MAIN_DIR_FILES := Doxyfile Doxyfile.user Makefile.in configure \ configure.ac config.h.in install-sh set_color.c count.c \ key_reader.c gen_hdr.sh gen_hdr2.c $(MIME_OBJS:.o=.h) \ @@ -149,27 +211,54 @@ MAIN_DIR_FILES := Doxyfile Doxyfile.user Makefile.in configure \ xsel-0.9.6.tar ChangeLog config.sub config.guess fish_tests.c \ main.c fish_pager.c fishd.c seq.in + +# # Files in ./etc/ +# + ETC_DIR_FILES :=etc/config.fish.in etc/fish_inputrc +# # Files in ./share/ +# + SHARE_DIR_FILES :=share/config.fish.in share/config_interactive.fish.in + +# # Files in ./tests/ +# + TESTS_DIR_FILES := $(TEST_IN) $(TEST_IN:.in=.out) $(TEST_IN:.in=.err) \ $(TEST_IN:.in=.status) tests/test.fish tests/gen_output.fish + +# # Files in ./share/completions/ +# + COMPLETIONS_DIR_FILES := $(wildcard share/completions/*.fish) + +# # Files in ./share/functions/ +# + FUNCTIONS_DIR_FILES := $(wildcard share/functions/*.fish) -# Programs to build + +# +# Programs to install +# + PROGRAMS:=fish set_color @XSEL@ @SEQ_FALLBACK@ mimedb count fish_pager fishd -# Manuals to install + +# +# Manual pagess to install +# + MANUALS:=doc_src/builtin_doc/man/man1/fish.1 @XSEL_MAN_PATH@ \ doc_src/builtin_doc/man/man1/mimedb.1 \ doc_src/builtin_doc/man/man1/set_color.1 \ @@ -177,40 +266,69 @@ MANUALS:=doc_src/builtin_doc/man/man1/fish.1 @XSEL_MAN_PATH@ \ doc_src/builtin_doc/man/man1/fishd.1 \ doc_src/builtin_doc/man/man1/fish_pager.1 -#All translation message catalogs + +# +# All translation message catalogs +# + TRANSLATIONS_SRC := $(wildcard po/*.po) TRANSLATIONS := $(TRANSLATIONS_SRC:.po=.gmo) -#Make everything needed for installing fish + +# +# Make everything needed for installing fish +# + all: $(PROGRAMS) user_doc etc/config.fish share/config.fish share/config_interactive.fish $(TRANSLATIONS) @echo fish has now been built. @echo Use \'make install\' to install fish. .PHONY: all + +# +# These dependencies make sure that autoconf and configure are run +# when the source code for the build configuration has changed. +# + configure: configure.ac ./config.status --recheck Makefile: Makefile.in configure ./config.status -fish.spec: fish.spec.in - ./config.status + +# +# Build fish with some debug flags specified. This is GCC specific, +# and should only be used when debuging fish. +# debug: make fish CFLAGS="@CFLAGS@ $(MACROS) -O0 -Wno-unused -Werror -g" .PHONY: debug + +# # User documentation, describing the features of the fish shell. +# + user_doc: doc_src/doc.hdr Doxyfile.user user_doc.head.html $(CMD_DOC_SRC) $(BUILTIN_DOC_SRC) $(MAKE) doc.h # Depend on the source (doc.hdr) and manually make the intermediate as needed doxygen Doxyfile.user touch user_doc + +# # Source code documentation. Also includes user documentation. +# + doc: *.h *.c doc.h Doxyfile builtin_help.c doxygen; + +# # PDF version of the source code documentation. +# + doc/refman.pdf: doc cd doc/latex; make; @@ -218,20 +336,34 @@ doc/refman.pdf: doc cd ../..; rm -r doc/latex; + +# +# This target runs both the low level code tests and the high level script tests. +# + test: $(PROGRAMS) fish_tests ./fish_tests; cd tests; ../fish <test.fish; .PHONY: test + +# +# Build the xsel program, which is maintained in its own tarball +# + xsel-0.9.6: tar -xf xsel-0.9.6.tar xsel-0.9.6/xsel: xsel-0.9.6 cd xsel-0.9.6; ./configure; make + +# # doc.h is a compilation of the various snipptes of text used both for # the user documentation and for internal help functions into a single # file that can be parsed dy Doxygen to generate the user # documentation. +# + doc.h:$(BUILTIN_DOC_SRC) $(CMD_DOC_SRC) doc_src/doc.hdr cat doc_src/doc.hdr >doc.h; echo "/** \page builtins Builtin commands" >>doc.h; @@ -248,10 +380,14 @@ doc.h:$(BUILTIN_DOC_SRC) $(CMD_DOC_SRC) doc_src/doc.hdr done echo "*/" >>doc.h + +# # This rule creates complete doxygen headers from each of the various # snipptes of text used both for the user documentation and for # internal help functions, that can be parsed to Doxygen to generate # the internal help function text. +# + %.doxygen:%.txt echo "/** \page " `basename $*` >$@; cat $*.txt >>$@; @@ -261,13 +397,21 @@ doc.h:$(BUILTIN_DOC_SRC) $(CMD_DOC_SRC) doc_src/doc.hdr sed <$@.in >$@ -e "s,@sysconfdir\@,$(sysconfdir),g" -e "s,@datadir\@,$(datadir),g" -e "s,@docdir\@,$(docdir),g" -e "s|@configure_input\@|$@, generated from $@.in by the Makefile. DO NOT MANUALLY EDIT THIS FILE!|g" -e "s,@prefix\@,$(prefix),g" -e "s,@optbindirs\@,$(optbindirs),g" #-e "s,@\@,$()," -# Compile translation file + +# +# Compile translation files to binary format +# + %.gmo: if test $(HAVE_GETTEXT) = 1; then \ msgfmt -o $*.gmo $*.po; \ fi + +# # Update existing po file or copy messages.pot +# + %.po:messages.pot if test $(HAVE_GETTEXT) = 1;then \ if test -f $*.po; then \ @@ -277,7 +421,11 @@ doc.h:$(BUILTIN_DOC_SRC) $(CMD_DOC_SRC) doc_src/doc.hdr fi; \ fi + +# # Create a template translation object +# + messages.pot: *.c *.h etc/*.in share/fish share/completions/*.fish share/functions/*.fish seq if test $(HAVE_GETTEXT) = 1;then \ xgettext -k_ -kN_ *.c *.h -o messages.pot; \ @@ -292,6 +440,8 @@ builtin.o: $(BUILTIN_FILES) common.o: $(COMMON_FILES) + +# # Generate the internal help functions by making doxygen create # man-pages which are then converted into C code. The convertion path # looks like this: @@ -323,6 +473,7 @@ common.o: $(COMMON_FILES) # # Which is an awful, clunky and ugly way of producing # documentation. There ought to be something simpler. +# doc_src/builtin_doc: $(BUILTIN_DOC_SRC) doc_src/count.txt builtin_help.hdr $(CMD_DOC_SRC) for i in $(BUILTIN_DOC_SRC) $(CMD_DOC_SRC); do \ @@ -350,11 +501,12 @@ builtin_help.c: doc_src/builtin_doc gen_hdr.sh done; echo "}" >>builtin_help.c + # # Generate help texts for external fish commands, like set_color and -# mimedb. Depends on builtin_help.c to make sure doxygen gets run to -# generate the man files. +# mimedb. # + %.c : %.doxygen $(MAKE) gen_hdr2 builtin_help.c # These should really be filed as dependencis for %.c above instead, but that seems to confuse make echo "// This file was automatically generated, do not edit" >$@ @@ -373,8 +525,10 @@ builtin_help.c: doc_src/builtin_doc gen_hdr.sh # The build rules for installing/uninstalling fish # +# # Check for an incompatible installed fish version, and fail with an # error if found +# check-uninstall: if test -f $(DESTDIR)$(sysconfdir)/fish.d/fish_function.fish -o -f $(DESTDIR)$(sysconfdir)/fish.d/fish_complete.fish; then \ @@ -402,16 +556,31 @@ check-uninstall: fi; .PHONY: check-uninstall + +# +# This check makes sure that the install-sh script is executable. The +# darcs repo doesn't preserve the executable bit, so this needs to be +# run after checkout. +# + install-sh: if test -x install-sh; then true; else chmod 755 install-sh; fi .PHONY: install-sh -# Try to install after checking for incompatible installed versions + +# +# Try to install after checking for incompatible installed versions. +# + install: all install-sh check-uninstall install-force .PHONY: install + +# # Force installation, even in presense of incompatible previous -# version +# version. This may fail. +# + install-force: all install-translations $(INSTALL) -m 755 -d $(DESTDIR)$(bindir) for i in $(PROGRAMS); do\ @@ -452,7 +621,9 @@ install-force: all install-translations .PHONY: install-force +# # Uninstall this fish version +# uninstall: uninstall-translations -for i in $(PROGRAMS); do \ @@ -473,9 +644,13 @@ uninstall: uninstall-translations done; .PHONY: uninstall -# Uninstall older fish release. This is not the default uninstall + +# +# Uninstall an older fish release. This is not the default uninstall # since there is a slight chance that it removes a file put in place by -# the sysadmin. +# the sysadmin. But if 'make install' detects a file confligt, it +# suggests using this target. +# uninstall-legacy: uninstall -rm -f $(DESTDIR)$(sysconfdir)/fish.d/fish_interactive.fish @@ -513,41 +688,87 @@ uninstall-translations: fi .PHONY: uninstall-translations + # # The build rules for all the commands # +# +# Build the fish program. +# + fish: $(FISH_OBJS) main.o $(CC) $(FISH_OBJS) main.o $(LDFLAGS) -o $@ + +# +# Build the fish_pager program. +# + fish_pager: $(FISH_PAGER_OBJS) $(CC) $(FISH_PAGER_OBJS) $(LDFLAGS) -o $@ + +# +# Build the fishd program. +# + fishd: $(FISHD_OBJS) $(CC) $(FISHD_OBJS) $(LDFLAGS) -o $@ + +# +# Build the fish_tests program. +# + fish_tests: $(FISH_TESTS_OBJS) $(CC) $(FISH_TESTS_OBJS) $(LDFLAGS) -o $@ -# mimedb does not need any libraries, so we don't use LDFLAGS here + +# +# Build the mimedb program. +# +# mimedb does not need any libraries, so we don't use LDFLAGS here. +# + mimedb: $(MIME_OBJS) doc_src/mimedb.o $(CC) $(MIME_OBJS) doc_src/mimedb.o $(LDFLAGS) -o $@ -# count does not need any libraries, so we don't use LDFLAGS here + +# +# Build the count program. +# +# count does not need any libraries, so we don't use LDFLAGS here. +# + count: count.o $(CC) count.o -o $@ + +# +# Build the set_color program +# + set_color: set_color.o doc_src/set_color.o common.o $(CC) set_color.o doc_src/set_color.o common.o wutil.o $(LDFLAGS) -o $@ + +# # Test program for the tokenizer library +# + tokenizer_test: tokenizer.c tokenizer.h wutil.o common.o $(CC) $(CFLAGS) tokenizer.c wutil.o common.o -D TOKENIZER_TEST $(LDFLAGS) -o $@ + +# # Neat little program to show output from terminal +# + key_reader: key_reader.o input_common.o common.o env_universal.o env_universal_common.o wutil.o $(CC) key_reader.o input_common.o common.o env_universal.o env_universal_common.o wutil.o $(LDFLAGS) -o $@ + # # Update dependencies # @@ -556,12 +777,16 @@ depend: ./config.status .PHONY: depend + +# # Copy all the source files into a new directory and use tar to create # an archive from it. Simplest way I could think of to make an archive # witout backups, autogenerated files, etc. # # Uses install instead of mkdir so build won't fail if the directory # exists +# + fish-@PACKAGE_VERSION@.tar: $(DOC_SRC_DIR_FILES) $(MAIN_DIR_FILES) $(ETC_DIR_FILES) $(TEST_DIR_FILES) $(SHARE_DIR_FILES) $(FUNCTIONS_DIR_FILES) $(COMPLETIONS_DIR_FILES) ChangeLog user_doc doc_src/builtin_doc rm -rf fish-@PACKAGE_VERSION@ $(INSTALL) -d fish-@PACKAGE_VERSION@ @@ -586,9 +811,19 @@ fish-@PACKAGE_VERSION@.tar: $(DOC_SRC_DIR_FILES) $(MAIN_DIR_FILES) $(ETC_DIR_FIL tar -c fish-@PACKAGE_VERSION@ >fish-@PACKAGE_VERSION@.tar rm -rf fish-@PACKAGE_VERSION@ + +# +# Just an alias for fish-@PACKAGE_VERSION@.tar +# + tar: fish-@PACKAGE_VERSION@.tar .PHONY: tar + +# +# Make compressed tar archives +# + fish-@PACKAGE_VERSION@.tar.gz: fish-@PACKAGE_VERSION@.tar gzip -f --best -c fish-@PACKAGE_VERSION@.tar >fish-@PACKAGE_VERSION@.tar.gz @@ -598,8 +833,19 @@ fish-@PACKAGE_VERSION@.tar.bz2: fish-@PACKAGE_VERSION@.tar dist: fish-@PACKAGE_VERSION@.tar.bz2 .PHONY: dist +# +# Build the RPM spec file. +# + +fish.spec: fish.spec.in + ./config.status + + +# # Create .rpm file for the current systems architecture and an # .src.rpm file. +# + rpm: fish-@PACKAGE_VERSION@.tar.bz2 fish.spec @if which rpmbuild; then true; else \ echo Could not find the rpmbuild command, needed to build an rpm; \ |