6 # make -f rpm.mk osxpkg
8 # Easy way to make RPM package. Contains rules also for building a package
10 # MODIFICATION HISTORY
11 # 2003-03-23/PetteriK: robodoc.spec.in template
12 # 2003-02-10/PetteriK: RPM build using RH8.0, remote build dropped
14 # http://www.rpm.org/RPM-HOWTO/build.html
18 # rpm-related parameters
19 PROJECT_NAME = robodoc
20 PROJECT_VERSION = 4.99.36
22 PROJECT = $(PROJECT_NAME)-$(PROJECT_VERSION)
23 SPECFILE = $(PROJECT_NAME).spec
24 TARBALL = $(PROJECT).tar.gz
25 SRPM = $(PROJECT)-$(PROJECT_RELEASE).src.rpm
26 RPM = $(PROJECT)-$(PROJECT_RELEASE).i386.rpm
27 RHDIR = $(HOME)/redhat
31 #****** rpm.mk/robodoc.spec
35 # Fill in version and release info to .spec file template.
38 robodoc.spec: robodoc.spec.in rpm.mk
40 sed -e 's/PROJECT_VERSION/$(PROJECT_VERSION)/g' \
41 -e 's/PROJECT_RELEASE/$(PROJECT_RELEASE)/g' \
42 robodoc.spec.in > robodoc.spec
50 # Make pretty tarball of sources in this directory tree.
57 cp -R . /tmp/$(PROJECT)
58 find /tmp/$(PROJECT) -type d -name CVS | xargs rm -fr
59 find /tmp/$(PROJECT) -type d -name .gone | xargs rm -fr
60 (cd /tmp; tar cf - $(PROJECT) | gzip -c > $(RHDIR)/SOURCES/$(TARBALL))
61 rm -fr /tmp/$(PROJECT)
69 # Make RPM; both binary and source packages.
76 cp $(SPECFILE) $(RHDIR)/SPECS/$(SPECFILE)
77 rpmbuild -ba $(RHDIR)/SPECS/$(SPECFILE)
78 @echo "RPM packages are now:"
79 @ls -l $(RHDIR)/RPMS/i386/$(RPM)
80 @ls -l $(RHDIR)/SRPMS/$(SRPM)
84 #****** rpm.mk/make_rhdir
88 # Create directories for RPM build. Topdir parameter in ~/.rpmmacros
89 # has to point to $(HOME)/redhat (default but users may change that).
94 for i in $(RHDIR) $(RHDIR)/RPMS $(RHDIR)/SOURCES $(RHDIR)/SPECS $(RHDIR)/SRPMS $(RHDIR)/BUILD; do \
95 if [ ! -d $$i ] ; then \
102 #****** rpm.mk/osxpkg
106 # Create Mac OS X binary package.
111 MACPKG=$(PROJECT).pkg
112 PKGINF=$(MACPKG)/Contents/Resources/English.lproj/$(PROJECT).info
116 rm -f osx/License.rtf osx/ReadMe.rtf
117 sed -e 's/PROJECT_VERSION/$(PROJECT_VERSION)/g' \
118 -e 's/PROJECT_RELEASE/$(PROJECT_RELEASE)/g' \
119 osx/License.rtf.in > osx/License.rtf
120 sed -e 's/PROJECT_VERSION/$(PROJECT_VERSION)/g' \
121 -e 's/PROJECT_RELEASE/$(PROJECT_RELEASE)/g' \
122 osx/ReadMe.rtf.in > osx/ReadMe.rtf
128 rm -fr Distribution_Folder $(MACPKG)
129 mkdir -p Distribution_Folder/Package_Root/private/etc
130 mkdir -p Distribution_Folder/Package_Root/Applications
131 mkdir -p Distribution_Folder/Package_Root/usr/share/doc/$(PROJECT)/Headers
132 mkdir -p Distribution_Folder/Package_Root/usr/bin
133 mkdir -p Distribution_Folder/Package_Root/usr/share/man/man1
134 mkdir -p Distribution_Folder/Resources/PreFlight
135 mkdir -p Distribution_Folder/Resources/PostFlight
136 -chmod a+rx Distribution_Folder/Resources/PreFlight/* Distribution_Folder/Resources/PostFlight/*
137 cp Source/robodoc Distribution_Folder/Package_Root/usr/bin
138 cp Source/robohdrs Distribution_Folder/Package_Root/usr/bin
139 cp Docs/robodoc.1 Distribution_Folder/Package_Root/usr/share/man/man1
140 cp Docs/robohdrs.1 Distribution_Folder/Package_Root/usr/share/man/man1
141 chmod 755 Distribution_Folder/Package_Root/usr/bin/*
142 chmod 644 Distribution_Folder/Package_Root/usr/share/man/man1/*
143 cp AUTHORS ChangeLog COPYING DEVELOPERS INSTALL NEWS README TODO UPGRADE Distribution_Folder/Package_Root/usr/share/doc/$(PROJECT)
144 cp Headers/*.sample Distribution_Folder/Package_Root/usr/share/doc/$(PROJECT)/Headers
145 mkdir -p $(MACPKG)/Contents/Resources/PostFlight
146 mkdir -p $(MACPKG)/Contents/Resources/PreFlight
147 mkdir -p $(MACPKG)/Contents/Resources/English.lproj
148 cp osx/*.rtf $(MACPKG)/Contents/Resources
149 (cd Distribution_Folder; mkbom Package_Root ../$(MACPKG)/Contents/Resources/$(PROJECT).bom)
150 (cd Distribution_Folder/Package_Root; pax -w -f ../../$(MACPKG)/Contents/Resources/$(PROJECT).pax .)
151 (cd $(MACPKG)/Contents/Resources; gzip $(PROJECT).pax)
152 echo "Numfiles 20" > $(MACPKG)/Contents/Resources/$(PROJECT).sizes
153 echo "InstalledSize 352" >> $(MACPKG)/Contents/Resources/$(PROJECT).sizes
154 echo "CompressedSize 352" >> $(MACPKG)/Contents/Resources/$(PROJECT).sizes
155 echo "Title ROBODoc" > $(PKGINF)
156 echo "Version 4.0.0" >> $(PKGINF)
157 echo "Description Autdocs formatter" >> $(PKGINF)
158 echo "DefaultLocation /" >> $(PKGINF)
159 echo "DeleteWarning" >> $(PKGINF)
161 echo "### Package Flags" >> $(PKGINF)
163 echo "NeedsAuthorization YES" >> $(PKGINF)
164 echo "Relocatable NO" >> $(PKGINF)
165 echo "RequiresReboot NO" >> $(PKGINF)
166 echo "UseUserMask NO" >> $(PKGINF)
167 echo "OverwritePermissions NO" >> $(PKGINF)
168 echo "InstallFat NO" >> $(PKGINF)
169 echo -n pmkrpkg1 > $(MACPKG)/Contents/PkgInfo
170 sh osx/dmg.sh $(PROJECT_NAME) $(PROJECT_VERSION) $(PROJECT_RELEASE)
171 rm -fr Distribution_Folder $(MACPKG)
175 # date format for spec file
178 echo "`date +'* %a %b %d %Y'` `whoami`"
182 rpm -qpi $(RHDIR)/RPMS/i386/$(RPM)
183 rpm -qpl $(RHDIR)/RPMS/i386/$(RPM)
187 rpm -qa | grep $(PROJECT_NAME)
190 test: install chksys uninstall
194 sudo rpm -i $(RHDIR)/RPMS/i386/$(RPM)
198 sudo rpm -e $(PROJECT_NAME)