File: Makefile

package info (click to toggle)
fotoxx 24.70-1
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 21,888 kB
  • sloc: cpp: 78,255; makefile: 116; xml: 52
file content (146 lines) | stat: -rw-r--r-- 4,367 bytes parent folder | download
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
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
#  fotocx Makefile
#
#  Following commands choose compiler and debug options
#  export CXX=g++          gnu compiler
#  export CXX=clang++      clang compiler
#  export DEBUG=x          debug build with address checking

CXXFLAGS += -fpermissive -Wno-write-strings 
CXXFLAGS += -Wno-deprecated-declarations ## champlain-tile.h broken since 2020
CXXFLAGS += -Wno-class-memaccess ## new restriction Oct 2023
CXXFLAGS += -fno-omit-frame-pointer ## for backtrace reliability

ifeq ($(CXX), clang++)                                #  CLANG
   ifdef DEBUG
      CXXFLAGS += -Wall -g -O0 -fsanitize=address -Wno-stringop-truncation
      LDFLAGS += -fsanitize=address
   else
      CXXFLAGS += -Wall -g -O2
   endif
else                                                  #  GCC
   ifdef DEBUG
      CXXFLAGS += -Wall -g2 -rdynamic -O0 -fsanitize=address            \
                  -Wno-format-truncation -Wno-stringop-truncation
      LDFLAGS += -fsanitize=address
   else
      CXXFLAGS += -Wall -g2 -rdynamic -O2                               \
                  -Wno-format-truncation -Wno-stringop-truncation
   endif
endif

PKG_CONFIG ?= pkg-config

CFLAGS = $(CXXFLAGS) $(CPPFLAGS) -c                                              \
         `$(PKG_CONFIG) --cflags gtk+-3.0 --libs champlain-gtk-0.12`

LIBS = `$(PKG_CONFIG) --libs gtk+-3.0`                                              \
         -lrt -lpthread -ltiff -lpng -ljpeg                                         \
         -lclutter-1.0 -lclutter-gtk-1.0 -lchamplain-0.12 -lchamplain-gtk-0.12

ALLFILES = fotocx.o f.widgets.o f.file.o f.gallery.o f.albums.o f.select.o f.meta.o    \
           f.edit.o f.repair.o f.refine.o f.effects.o f.warp.o f.comb.o f.mashup.o     \
           f.tools.o f.batch.o f.pixmap.o zfuncs.o

fotocx: $(ALLFILES)
	$(CXX) $(LDFLAGS) $(ALLFILES) $(LIBS) -o fotocx \

fotocx.o: fotocx.cc fotocx.h
	$(CXX) fotocx.cc $(CFLAGS) -o fotocx.o \

f.widgets.o: f.widgets.cc  fotocx.h
	$(CXX) f.widgets.cc $(CFLAGS) \

f.file.o: f.file.cc  fotocx.h
	$(CXX) f.file.cc $(CFLAGS) \

f.gallery.o: f.gallery.cc  fotocx.h
	$(CXX) f.gallery.cc $(CFLAGS) \

f.albums.o: f.albums.cc  fotocx.h
	$(CXX) f.albums.cc $(CFLAGS) \

f.select.o: f.select.cc  fotocx.h
	$(CXX) f.select.cc $(CFLAGS) \

f.meta.o: f.meta.cc  fotocx.h
	$(CXX) f.meta.cc $(CFLAGS) \

f.edit.o: f.edit.cc  fotocx.h
	$(CXX) f.edit.cc $(CFLAGS) \

f.repair.o: f.repair.cc  fotocx.h
	$(CXX) f.repair.cc $(CFLAGS) \

f.refine.o: f.refine.cc  fotocx.h
	$(CXX) f.refine.cc $(CFLAGS) \

f.effects.o: f.effects.cc  fotocx.h
	$(CXX) f.effects.cc $(CFLAGS) \

f.warp.o: f.warp.cc  fotocx.h
	$(CXX) f.warp.cc $(CFLAGS) \

f.comb.o: f.comb.cc  fotocx.h
	$(CXX) f.comb.cc $(CFLAGS) \

f.mashup.o: f.mashup.cc  fotocx.h
	$(CXX) f.mashup.cc $(CFLAGS) \

f.tools.o: f.tools.cc  fotocx.h
	$(CXX) f.tools.cc $(CFLAGS) \

f.batch.o: f.batch.cc  fotocx.h
	$(CXX) f.batch.cc $(CFLAGS) \

f.pixmap.o: f.pixmap.cc  fotocx.h
	$(CXX) f.pixmap.cc $(CFLAGS) \

zfuncs.o: zfuncs.cc  zfuncs.h
	$(CXX) zfuncs.cc $(CFLAGS) \

ifdef DEBUG
	@echo DEBUG BUILD
endif

# install application files in standard locations        24.21
PREFIX ?= /usr/local
BINDIR = $(PREFIX)/bin
MENUDIR = $(PREFIX)/share/applications
DOCDIR = $(PREFIX)/share/doc/fotocx
MANDIR = $(PREFIX)/share/man/man1
DATADIR = $(PREFIX)/share/fotocx
ICONDIR = $(PREFIX)/share/icons
METAINFODIR = $(PREFIX)/share/metainfo
                                         
install: fotocx uninstall
	mkdir -p  $(DESTDIR)$(BINDIR)
	mkdir -p  $(DESTDIR)$(MENUDIR)
	mkdir -p  $(DESTDIR)$(DOCDIR)
	mkdir -p  $(DESTDIR)$(MANDIR)
	mkdir -p  $(DESTDIR)$(DATADIR)
	mkdir -p  $(DESTDIR)$(ICONDIR)
	mkdir -p  $(DESTDIR)$(METAINFODIR)

	cp -f fotocx $(DESTDIR)$(BINDIR)
	cp -f fotocx.desktop $(DESTDIR)$(MENUDIR)
	cp -f -R  doc/* $(DESTDIR)$(DOCDIR)
	gzip -fk -9 man/fotocx.man
	mv -f man/fotocx.man.gz $(DESTDIR)$(MANDIR)/fotocx.1.gz
	cp -f -R  data $(DESTDIR)$(DATADIR)
	cp -f -R  images $(DESTDIR)$(DATADIR)
	cp -f fotocx.png $(DESTDIR)$(ICONDIR)
	cp -f metainfo/* $(DESTDIR)$(METAINFODIR)

uninstall:
	rm -f     $(DESTDIR)$(BINDIR)/fotocx*
	rm -f     $(DESTDIR)$(MENUDIR)/fotocx*
	rm -f -R  $(DESTDIR)$(DOCDIR)
	rm -f     $(DESTDIR)$(MANDIR)/fotocx*
	rm -f -R  $(DESTDIR)$(DATADIR)
	rm -f     $(DESTDIR)$(ICONDIR)/fotocx*
	rm -f     $(DESTDIR)$(METAINFODIR)/kornelix.fotocx*

clean:
	rm -f  fotocx
	rm -f  *.o