]>
Commit | Line | Data |
---|---|---|
1 | #!/usr/bin/make -f | |
2 | ############################################################################## | |
3 | # Generic debian/rules file. Based on: | |
4 | # | |
5 | #> Sample debian.rules file - for GNU Hello (1.3). | |
6 | #> Copyright 1994,1995 by Ian Jackson. | |
7 | #> I hereby give you perpetual unlimited permission to copy, | |
8 | #> modify and relicense this file, provided that you do not remove | |
9 | #> my name from the file itself. (I assert my moral right of | |
10 | #> paternity under the Copyright, Designs and Patents Act 1988.) | |
11 | # | |
12 | # Heavily modified by Joey Hess <joeyh@master.debian.org> | |
13 | # | |
14 | ############################################################################## | |
15 | # | |
16 | # NOTE: You shouldn't have to edit this file. Edit debian/config instead. | |
17 | # If you must edit this file to get your package to build properly, then | |
18 | # I have failed. Let me know; mail me. | |
19 | # | |
20 | # (Currently not handled: multiple binary packages from 1 source package, | |
21 | # and binary-indep rule.) | |
22 | # | |
23 | # NOTE: This file is designed so it doesn't need to be run as root. For | |
24 | # actions that require that the user be root, the root password will be | |
25 | # prompted for, if you're not already root. | |
26 | # | |
27 | ############################################################################## | |
28 | # | |
29 | # Changelog: | |
30 | # * Fakeroot and sudo fixes. | |
31 | # * Run dpkg-gencontrol after debstd, and delete substvars during clean. | |
32 | # * Clean up junk files in subdirs. | |
33 | # * Modifications for multiple binary package support. | |
34 | # * Call debstd after fixing file perms. | |
35 | # * Don't pass package name to debstd + fixes for multi binary packages. | |
36 | # * Use build-stamp instead of build. | |
37 | # * New email address. | |
38 | # * Added changelog. | |
39 | # | |
40 | ############################################################################## | |
41 | ||
42 | # Include config file. | |
43 | include debian/config | |
44 | ||
45 | # Generate a makefile (via configure scriopt or xmkmf). | |
46 | makefile-stamp: | |
47 | ifeq ($(strip $(use_imakefile)),y) | |
48 | xmkmf -a | |
49 | endif | |
50 | $(use_configure) | |
51 | touch makefile-stamp | |
52 | ||
53 | # Preserve some files that may get deleted/overwritten/modified otherwise. | |
54 | preserve-stamp: | |
55 | ifneq ($(strip $(preserve_files)),) | |
56 | $(foreach file,$(preserve_files),cp $(file) $(file).preserved ;) | |
57 | endif | |
58 | touch preserve-stamp | |
59 | ||
60 | build-stamp: preserve-stamp makefile-stamp | |
61 | $(checkdir) | |
62 | $(build_command) | |
63 | touch build-stamp | |
64 | ||
65 | build: build-stamp | |
66 | ||
67 | clean: preserve-stamp makefile-stamp | |
68 | $(checkdir) | |
69 | # Do actual cleaning up here. | |
70 | -rm -f build-stamp | |
71 | $(clean_command) | |
72 | -find . -name '\#*\#' -o -name '*~' -o -name 'DEADJOE' -exec rm -f {} \; | |
73 | -rm -f debian/files* debian/substvars debian/*.substvars $(clean_files) | |
74 | $(clean_tmp) | |
75 | # Remove Makefile that xmkmf creates. | |
76 | ifeq ($(strip $(use_imakefile)),y) | |
77 | -rm -f Makefile | |
78 | endif | |
79 | # If we preserved some files, we need to restore them now. | |
80 | ifneq ($(strip $(preserve_files)),) | |
81 | $(foreach file,$(preserve_files),mv -f $(file).preserved $(file); ) | |
82 | endif | |
83 | -rm -f preserve-stamp makefile-stamp | |
84 | ||
85 | # Build architecture-independent files here. | |
86 | # (not yet set up to be used) | |
87 | binary-indep: build | |
88 | $(checkdir) | |
89 | ||
90 | # Build architecture-dependent files here. | |
91 | binary-arch: build | |
92 | $(checkdir) | |
93 | $(clean_tmp) | |
94 | $(install_command) | |
95 | # Set permissions and check package for problems, then build package. | |
96 | @if [ "`whoami`" != root ]; then \ | |
97 | echo -e "\n ** Enter root password to set file permissions."; \ | |
98 | sudo debian/rules setperms; \ | |
99 | else \ | |
100 | debian/rules setperms; \ | |
101 | fi | |
102 | ||
103 | # This must be run suid root, it sets the file permissions in debian/tmp | |
104 | setperms: | |
105 | chown -R root.root debian/tmp | |
106 | chmod -R g-ws debian/tmp | |
107 | # Debstd handles lots of nasty details. This requires that the debmake | |
108 | # package is installed. | |
109 | -debstd $(debstd) $(docs) | |
110 | dpkg-gencontrol -p$(package) | |
111 | $(ch_commands) | |
112 | dpkg --build debian/tmp .. | |
113 | ||
114 | define checkdir | |
115 | @test -e $(test_file) -a -f debian/rules || (echo -e "\n\ | |
116 | ** \"$(test_file)\" or \"debian/rules\" does not exist.\n\ | |
117 | ** Either the package is not unpacked in this directory, or\n\ | |
118 | ** an incorrect test_file is specified in debian/config.\n" && false) | |
119 | endef | |
120 | ||
121 | # This rm's the debian/tmp directory, and any other directories specified in | |
122 | # tmpdirs | |
123 | define clean_tmp | |
124 | -rm -rf debian/tmp >/dev/null 2>&1 | |
125 | @if [ -d debian/tmp -o -n "$(tmp_dirs)" ]; then \ | |
126 | if [ "`whoami`" != root ]; then \ | |
127 | echo -e "\n ** Enter root password to remove temporary directories $(tmp_dirs)"; \ | |
128 | sudo rm -rf debian/tmp $(tmp_dirs); \ | |
129 | else \ | |
130 | rm -rf debian/tmp $(tmp_dirs); \ | |
131 | fi; \ | |
132 | fi | |
133 | endef | |
134 | ||
135 | binary: binary-indep binary-arch | |
136 | .PHONY: clean setperms binary |