improve build system

This commit is contained in:
Christian Hohnstaedt 2011-06-23 18:03:04 +02:00
parent 63affd2d36
commit 9a2b277bd9
4 changed files with 30 additions and 22 deletions

View File

@ -15,12 +15,13 @@ sinclude Local.mak
SUBDIRS=lib widgets img
OBJECTS=$(patsubst %, $(BUILD)/%/.build-stamp, $(SUBDIRS))
INSTDIR=misc lang doc img
CLEANDIRS=lang doc ui img macdeployqt
HDRDIRS=lib widgets ui
INSTTARGET=$(patsubst %, install.%, $(INSTDIR))
APPTARGET=$(patsubst %, app.%, $(INSTDIR))
bindir=bin
DMGSTAGE=$(BUILD)/xca-$(VERSION)
MACTARGET=$(DMGSTAGE)-$(DARWIN)
APPDIR=$(DMGSTAGE)/xca.app/Contents
ifeq ($(SUFFIX), .exe)
all: setup$(SUFFIX)
@ -51,6 +52,16 @@ $(BUILD)/%/.build-stamp: headers
$(MAKE) DEP=yes -C $(BUILD)/$* -f $(TOPDIR)/$*/Makefile \
VPATH=$(TOPDIR)/$*
$(INSTTARGET): install.%: $(BUILD)/%/.build-stamp
mkdir -p $(BUILD)/$*
$(MAKE) -C $(BUILD)/$* -f $(TOPDIR)/$*/Makefile \
VPATH=$(TOPDIR)/$* install
$(APPTARGET): app.%: $(BUILD)/%/.build-stamp
mkdir -p $(BUILD)/$*
$(MAKE) -C $(BUILD)/$* -f $(TOPDIR)/$*/Makefile \
VPATH=$(TOPDIR)/$* APPDIR=$(APPDIR) app
clean:
rm -rf $(BUILD)
rm -f *~ xca$(SUFFIX) setup_xca*.exe $(MACTARGET).dmg $(MACTARGET).tar.gz
@ -69,13 +80,10 @@ snapshot:
git archive --format=tar --prefix=xca-$${HASH}/ HEAD | \
gzip -9 > xca-$${HASH}.tar.gz
install: xca$(SUFFIX)
install: xca$(SUFFIX) $(INSTTARGET)
install -m 755 -d $(destdir)$(prefix)/$(bindir)
install -m 755 xca $(destdir)$(prefix)/$(bindir)
$(STRIP) $(destdir)$(prefix)/$(bindir)/xca
for d in $(INSTDIR); do \
$(MAKE) -C $$d install; \
done
$(MACDEPLOYQT):
@ -88,9 +96,7 @@ setup.exe: xca$(SUFFIX) misc/xca.nsi do.doc do.lang
-DVERSION=$(VERSION) -DBDIR=$(BDIR) -DBUILD=$(BUILD) \
-NOCD -V2 misc/xca.nsi
xca.app: $(DMGSTAGE)
$(DMGSTAGE): xca$(SUFFIX) $(MACDEPLOYQT) do.doc do.lang
$(DMGSTAGE): xca$(SUFFIX) $(MACDEPLOYQT)
rm -rf $(DMGSTAGE)
mkdir -p $(DMGSTAGE)/xca.app/Contents/MacOS
mkdir -p $(DMGSTAGE)/xca.app/Contents/Resources
@ -99,9 +105,7 @@ $(DMGSTAGE): xca$(SUFFIX) $(MACDEPLOYQT) do.doc do.lang
install -m 644 COPYRIGHT $(DMGSTAGE)/COPYRIGHT.txt
install -m 755 xca $(DMGSTAGE)/xca.app/Contents/MacOS
$(STRIP) $(DMGSTAGE)/xca.app/Contents/MacOS/xca
for d in $(INSTDIR); do \
$(MAKE) -C $$d APPDIR=$(TOPDIR)/$(DMGSTAGE)/xca.app/Contents app; \
done
$(MAKE) $(APPTARGET)
cp -r $(DMGSTAGE)/xca.app/Contents/Resources/*.html $(DMGSTAGE)/manual
ln -s xca.html $(DMGSTAGE)/manual/index.html
$(MACDEPLOYQT) $(DMGSTAGE)/xca.app
@ -109,6 +113,8 @@ $(DMGSTAGE): xca$(SUFFIX) $(MACDEPLOYQT) do.doc do.lang
xca.dmg: $(MACTARGET).dmg
xca.app: $(DMGSTAGE)
$(MACTARGET).dmg: $(DMGSTAGE)
hdiutil create -ov -srcfolder $< $@
@ -117,7 +123,7 @@ trans:
lupdate-qt4 $(TOPDIR)/xca.pro
$(MAKE) -C lang xca.pot
.PHONY: $(SUBDIRS) $(INSTDIR) xca.app setup.exe doc lang macdeployqt/macdeployqt
.PHONY: $(SUBDIRS) $(INSTDIR) xca.app setup.exe doc lang macdeployqt/macdeployqt $(DMGSTAGE)
doc lang headers: local.h

View File

@ -21,10 +21,11 @@ imgres.cpp: imgres.rcc
$(RCC) -o $@ $<
imgres.rcc: bigcert.png bigcrl.png bigcsr.png bigkey.png bigtemp.png crl.png halfkey.png invalidcertkey.png invalidcert.png key.png netscape.png reqkey.png req.png revoked.png spki.png template.png validcertkey.png validcert.png scard.png
w32res.o: w32res.rc key.ico xca.ico xdb.ico
$(WINDRES) $< $@
app:
app: xca-mac-icon.icns
mkdir -p $(APPDIR)/Resources
install -m 644 xca-mac-icon.icns $(APPDIR)/Resources
install -m 644 $^ $(APPDIR)/Resources

View File

@ -28,8 +28,6 @@ app:
po2ts: $(TS_XCA)
xca_%.ts: %.po
po2ts -i $< > $(@) # | \
# sed 's,^\( *<translation type="unfinished"\)>$$,\1/>,' |\
# grep -v '^ *</translation>$$' > $(@).NEW && mv $(@).NEW $(@) || :
#lconvert -i $< -of ts -o $@
xca.pot: xca.ts

View File

@ -1,13 +1,16 @@
SRCPATH=$(VPATH)/
all:
install:
install -m 755 -d $(destdir)$(prefix)/share/xca/ \
$(destdir)$(prefix)/share/applications \
$(destdir)$(prefix)/share/mime/packages
install -m 644 *.txt *.xca $(destdir)$(prefix)/share/xca
install -m 644 xca.desktop $(destdir)$(prefix)/share/applications
install -m 644 xca.xml $(destdir)$(prefix)/share/mime/packages
install -m 644 $(SRCPATH)*.txt $(SRCPATH)*.xca \
$(destdir)$(prefix)/share/xca
install -m 644 $(SRCPATH)xca.desktop $(destdir)$(prefix)/share/applications
install -m 644 $(SRCPATH)xca.xml $(destdir)$(prefix)/share/mime/packages
if test -z "$(destdir)"; then \
update-mime-database $(prefix)/share/mime || :; \
update-desktop-database || :; \
@ -15,7 +18,7 @@ install:
app:
mkdir -p $(APPDIR)/Resources
install -m 644 Info.plist PkgInfo $(APPDIR)
install -m 644 *.txt *.xca $(APPDIR)/Resources
install -m 644 $(SRCPATH)Info.plist $(SRCPATH)PkgInfo $(APPDIR)
install -m 644 $(SRCPATH)*.txt $(SRCPATH)*.xca $(APPDIR)/Resources
include $(TOPDIR)/Local.mak