00001
00002 # This is the file that all 'common' GNUmakefiles, and only them,
00003 # should include.
00004
00005 # Prerequisite: COMMON_TOP must be set.
00006
00007
00008 # Each project should define its own GNUmakesettings.inc, as explained below,
00009 # and should not reuse any other GNUmakesettings.inc coming from prerequisites.
00010
00011
00012 # Note regarding dependencies and settings:
00013
00014 # let c be 'common', b be a library using 'common' (ex: 'wooper') and a
00015 # an application using the b library: a depends on b that depends on c.
00016
00017 # For any makefile of a, the correct include order would be:
00018 # - all GNUmakevars before all GNUmakerules
00019 # - among GNUmakevars, first a, then b, then c, as b will define variables
00020 # if a did not defined them, and so on
00021 # - among GNUmakerules, first a, then b, then c, for the same reason:
00022 # rules will be matched according to their declaration order
00023 #
00024 # Therefore we need to have:
00025 # a.GNUmakevars
00026 # b.GNUmakevars
00027 # c.GNUmakevars
00028 # a.GNUmakerules
00029 # b.GNUmakerules
00030 # c.GNUmakerules
00031
00032 # Hence, for no project, the GNUmakevars and GNUmakerules should be
00033 # aggregated.
00034
00035 # As it is a lot more convenient that all GNUmakefiles include only one
00036 # global GNUmake*inc file, each project should define an appropriate one,
00037 # which ought be named 'GNUmakesettings.inc' (this file).
00038
00039
00040 include $(COMMON_TOP)/GNUmakevars.inc
00041
00042 include $(COMMON_TOP)/GNUmakerules.inc
00043