-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathMakefile.old
128 lines (102 loc) · 3.45 KB
/
Makefile.old
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
# This makefile is for Linux and MacOS building
# Windows uses QCreator.
# Unix installation
ifdef DESTDIR
# Debian uses this
INSTALLPATH = $(DESTDIR)/usr
SHAREPATH = $(DESTDIR)/usr/share
else
INSTALLPATH = /usr/local
SHAREPATH = /usr/local/share
endif
UNAME=$(shell uname -s)
ifeq (, $(shell which qmake-qt5))
QMAKE=qmake
else
QMAKE=qmake-qt5
endif
ifeq ($(UNAME),Linux)
# Linux
SELECTQT=QT_SELECT=5
else
ifeq ($(UNAME),Darwin)
# Mac OS
QROOT=/Users/wagenaar/Qt-5.7/5.7
QROOT=/Users/wagenaar/Qt-5.12/5.12.1
QBINPATH=$(QROOT)/clang_64/bin
QMAKE=$(QBINPATH)/qmake
else
$(error Unknown operating system. This Makefile is for Mac or Linux.)
endif
endif
DOCPATH = $(SHAREPATH)/doc/cschem
# Linux and Mac building
all: release man
clean:
+rm -rf build/
rm -f test/*.o
rm -f test/test
cpcb: release-cpcb
cschem: release-cschem
release: release-cpcb release-cschem
debug: debug-cpcb debug-cschem
release-cschem: prep-cschem
+make -C build/cschem -f Makefile-cschem release
release-cpcb: prep-cpcb
+make -C build/cpcb -f Makefile-cpcb release
debug-cschem: prep-cschem
+make -C build/cschem -f Makefile-cschem debug
debug-cpcb: prep-cpcb
+make -C build/cpcb -f Makefile-cpcb debug
prep-cschem:
mkdir -p build/cschem
rm -f build/cschem/*/BuildDate.o
( cd build/cschem; $(SELECTQT) $(QMAKE) ../../cschem/cschem.pro )
prep-cpcb:
mkdir -p build/cpcb
rm -f build/cpcb/*/BuildDate.o
( cd build/cpcb; $(SELECTQT) $(QMAKE) ../../cpcb/cpcb.pro )
install: all
install -d $(INSTALLPATH)/bin
install -d $(SHAREPATH)/man/man1
install -d $(SHAREPATH)/pixmaps
install -d $(SHAREPATH)/applications
install -d $(SHAREPATH)/icons/gnome/128x128/mimetypes
install -d $(SHAREPATH)/mime/packages
install -d $(SHAREPATH)/cschem
install -d $(DOCPATH)
install build/cschem/cschem $(INSTALLPATH)/bin/cschem
install build/cpcb/cpcb $(INSTALLPATH)/bin/cpcb
cp cschem/cschem.svg $(SHAREPATH)/pixmaps/cschem.svg
cp cschem/cschem.png $(SHAREPATH)/pixmaps/cschem.png
cp cschem/cschem.png $(SHAREPATH)/icons/gnome/128x128/mimetypes/cschem.png
cp cpcb/cpcb.svg $(SHAREPATH)/pixmaps/cpcb.svg
cp cpcb/cpcb.png $(SHAREPATH)/pixmaps/cpcb.png
cp cpcb/cpcb.png $(SHAREPATH)/icons/gnome/128x128/mimetypes/cpcb.png
cp cschem/cschem.xml $(SHAREPATH)/mime/packages/cschem.xml
cp cpcb/cpcb.xml $(SHAREPATH)/mime/packages/cpcb.xml
install cschem/cschem.desktop $(SHAREPATH)/applications/cschem.desktop
install cpcb/cpcb.desktop $(SHAREPATH)/applications/cpcb.desktop
cp README.md $(DOCPATH)/readme
gzip -9 $(DOCPATH)/readme
cp CHANGELOG $(DOCPATH)/changelog
gzip -9 $(DOCPATH)/changelog
cp -r symbols $(SHAREPATH)/cschem/symbols
cp -r pcb-outlines $(SHAREPATH)/cschem/pcb-outlines
man: build/cpcb.1 build/cschem.1
build/%.1: doc/%.1.txt
a2x --doctype manpage --format manpage --no-xmllint --destination build $<
userguide:;
/bin/cp -u doc/Makefile build/Makefile.doc
+make -C build -f Makefile.doc
tar: all
git archive -o ../cschem.tar.gz --prefix=cschem/ HEAD
macdmg: cpcb-dmg cschem-dmg
echo Your dmgs are build/cpcb/cpcb.dmg and build/cschem/cschem.dmg
cpcb-dmg: cpcb
$(QBINPATH)/macdeployqt build/cpcb/cpcb.app -dmg -executable=build/cpcb/cpcb.app/Contents/MacOS/cpcb
cschem-dmg: cschem
$(QBINPATH)/macdeployqt build/cschem/cschem.app -dmg -executable=build/cschem/cschem.app/Contents/MacOS/cschem
.PHONY: all clean tar man install prep debug prep-cschem prep-cpcb \
debug-cpcb debug-cschem release-cpcb debug-cschem cschem cpcb \
userguide cpcb-dmg cschem-dmg