Drop main() prototype. Syncs with NetBSD-8
[minix.git] / minix / Makefile.fetchgnu
blob6f0dddb385b7907bcc434f60a7a9a3ea0d2dec67
1 #       NOT NetBSD
3 # Rules used to fetch a GNU package.  Expects GNUHOSTDIST to be set
4 # and <bsd.own.mk> to be previously .include'd.
6 # New interface:
8 #   * When using the `cleandir' target, defining CLEANFETCHED=yes will
9 #     additionally remove all the fetched files.
10 #     This is particularly useful when a GNU package is updated.
12 # The rest should be operations hidden to the normal programmers.
14 # How to use: (maintainers manual)
16 #   * put a fetch.sh script one directory below the GNUHOSTDIST;
18 #   * .include "path/to/minix/Makefile.fetchgnu", after having
19 #     defined GNUHOSTDIST and before any use of the variable below;
21 #   * insert ${fetch_done} as source before performing any operation
22 #     on the files under GPL license which are usually found
23 #     within NetBSD src/ tree;
25 #   * rinse and repeat for every target which assumes the presence of
26 #    these files, and for every Makefile operating upon them.
29 # TODO: does not handle correctly the cases where there are more than
30 # one package downloaded by fetch.sh (e.g.gnu/dist with texinfo+gmake):
31 # .gitignore only "protects" the first package which triggers.
33 .if !defined(__MINIX) || !defined(GNUHOSTDIST)
34 .error Bad logic in Makefiles.
35 .endif
37 .if !defined(_MINIX_FETCHGNU_MK_)
38 _MINIX_FETCHGNU_MK_=1
40 # MINIX /usr/src does not have the sources for the GNU utilities
41 # in-tree, for licensing reasons. So to successfully use them while
42 # cross-compiling, we have to fetch them. The success of that operation
43 # is indicated by the presence of a .gitignore file in the corresponding
44 # source parent directory, which also conveniently hides from git.
45 .if exists(${GNUHOSTDIST:H}/fetch.sh)
46 ${GNUHOSTDIST:H}/.gitignore: ${GNUHOSTDIST:H}/fetch.sh
47         SED=${TOOL_SED} ${HOST_SH} ${GNUHOSTDIST:H}/fetch.sh
48         @test -e ${GNUHOSTDIST}/configure
49         @echo "${MODULE:U${.CURDIR:T}:C,gcc[0-9]*,gcc,:C,gmake*,make,}-*.tar.*z*" >> $@
50         @echo ${GNUHOSTDIST:T} >> $@
52 # Do the fetching as an extra step, to force serialization
53 .fetch_done: ${GNUHOSTDIST:H}/.gitignore
54         @touch $@
55 fetch_done=.fetch_done
57 # Special target for MINIX, reset the source tree as pristine
58 # Note it does NOT remove the downloaded tarball
59 .if ${CLEANFETCHED:Uno} == "yes"
60 cleandir: clean_gnu_src
61 clean_gnu_src:
62         -rm -r -f ${GNUHOSTDIST} ${GNUHOSTDIST:H}/.gitignore
63 .endif # CLEANFETCHED == yes
65 clean: clean.fetchgnu
66 clean.fetchgnu:
67         -@rm -f .fetch_done
69 .endif # exists(GNUHOSTDIST:H/fetch.sh) on MINIX
71 .endif  # !defined(_MINIX_FETCHGNU_MK_)