File: Makefile

package info (click to toggle)
qiv 3.0.2-1
  • links: PTS
  • area: main
  • in suites: forky, sid
  • size: 512 kB
  • sloc: ansic: 4,897; makefile: 109; sh: 100; python: 45
file content (178 lines) | stat: -rw-r--r-- 5,528 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
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
#######################################################################
# Makefile for qiv - Quick Image Viewer - http://qiv.spiegl.de/
# User Options
#######################################################################

# Directory where qiv will be installed under.
PREFIX = $(DESTDIR)/usr

# Fonts to use for statusbar and comments
STATUSBAR_FONT = "Monospace 9"
COMMENT_FONT = "Monospace 20"
ARTIST_FONT = "Monospace 10"

# Cursor to use on qiv windows - see
# /usr/X11R6/include/X11/cursorfont.h for more choices.
CURSOR = 84

# Should image be centered on screen by default? 1=yes, 0=no.
CENTER = 1

# Should images be filtered by extension? 1=yes, 0=no.
FILTER = 1

# This sets the file extentions to filter on (other file types will be
# skipped.) It should reflect whatever can be loaded via gdk-pixbuf-loader.
EXTNS = GIF TIFF XPM PNG PPM PNM PGM PCX BMP EIM JPEG SVG WMF ICO WEBP HEIF

# Comment this line out if your system doesn't have getopt_long().
GETOPT_LONG = -DHAVE_GETOPT_LONG

# This program will be run on the manual page after it is installed.
# If you don't want to compress the manpage, change it to 'true'.
COMPRESS_PROG = gzip -9f

# Comment this line out if your system doesn't have lcms2 installed
# (for minimal Color Management support)
LCMS = -DSUPPORT_LCMS

# Comment this line out if you do not want to use libmagic to
# identify if a file is an image
MAGIC = -DHAVE_MAGIC

# Comment this line out if you do not want to use libexif to
# display the exif contents of a jpg 
EXIF = -DHAVE_EXIF

######################################################################
# Variables and Rules
# Do not edit below here!
######################################################################

ifeq ($(origin CC),default)
CC = gcc
endif

PKG_CONFIG ?= pkg-config
INSTALL    ?= install
CFLAGS    = -O2 -Wall \
	    -fcaller-saves -ffast-math -fno-strength-reduce \
	    -fthread-jumps

GDK_VERS := 3

ifeq ($(GDK_VERS), 3)
INCLUDES  := $(shell $(PKG_CONFIG) --cflags gdk-3.0 )
LIBS      := $(shell $(PKG_CONFIG) --libs gdk-3.0 ) -lX11 -lXext  -lgio-2.0 -lm
else
INCLUDES  := $(shell $(PKG_CONFIG) --cflags gdk-2.0)
LIBS      := $(shell $(PKG_CONFIG) --libs gdk-2.0) -lX11 -lXext -lgio-2.0 -lm
endif

# [as] thinks that this is not portable enough:
# [lc] I use a virtual screen of 1600x1200, and the resolution is 1024x768,
# so I changed (in main.c) how screen_[x,y] is obtained; it seems that gtk
# 1.2 cannot give the geometry of viewport, so I borrowed from the source
# of xvidtune the code for calling XF86VidModeGetModeLine, this requires
# the linking option -lXxf86vm.
#LIBS      += -lXxf86vm

PROGRAM   = qiv
OBJS      = main.o image.o event.o options.o utils.o xmalloc.o
HEADERS   = qiv.h
DEFINES   = $(patsubst %,-DEXTN_%, $(EXTNS)) \
            $(GETOPT_LONG) \
            -DSTATUSBAR_FONT='$(STATUSBAR_FONT)' \
            -DCOMMENT_FONT='$(COMMENT_FONT)' \
            -DARTIST_FONT='$(ARTIST_FONT)' \
            -DCENTER=$(CENTER) \
            -DFILTER=$(FILTER) \
            -DCURSOR=$(CURSOR) \
            $(MAGIC) \
            $(EXIF) \
            $(LCMS)

ifndef GETOPT_LONG
OBJS     += lib/getopt.o lib/getopt1.o
OBJS_G   += lib/getopt.g lib/getopt1.g
endif

ifdef LCMS
INCLUDES  += $(shell $(PKG_CONFIG) --cflags lcms2)
LIBS      += $(shell $(PKG_CONFIG) --libs lcms2) -ljpeg -ltiff
endif

ifdef EXIF
INCLUDES  += $(shell $(PKG_CONFIG) --cflags libexif)
LIBS      += $(shell $(PKG_CONFIG) --libs libexif)
endif

ifdef MAGIC
LIBS    += -lmagic
endif

PROGRAM_G = qiv-g
OBJS_G    = $(OBJS:.o=.g)
DEFINES_G = $(DEFINES) -DDEBUG

######################################################################

all: $(PROGRAM)

$(PROGRAM): $(OBJS)
	$(CC) $(CFLAGS) $(DEFINES) $(OBJS) $(LIBS) -o $(PROGRAM)

$(OBJS): %.o: %.c $(HEADERS) Makefile
	$(CC) -c $(CFLAGS) $(DEFINES) $(INCLUDES) $< -o $@

main.o: main.h

######################################################################

debug: $(PROGRAM_G)

$(PROGRAM_G): $(OBJS_G)
	$(CC) -g $(CFLAGS) $(DEFINES_G) $(OBJS_G) $(LIBS) -o $(PROGRAM_G)

$(OBJS_G): %.g: %.c $(HEADERS)
	$(CC) -c -g $(CFLAGS) $(DEFINES_G) $(INCLUDES) $< -o $@

######################################################################

clean :
	@echo "Cleaning up..."
	rm -f $(OBJS) $(OBJS_G)

distclean : clean
	rm -f $(PROGRAM) $(PROGRAM_G)

install: $(PROGRAM)
	@echo "Installing QIV..."
	@if [ ! -e $(PREFIX)/bin ]; then \
	  $(INSTALL) -d -m 0755 $(PREFIX)/bin; \
	  echo install -d -m 0755 $(PREFIX)/bin; \
        fi
	$(INSTALL) -s -m 0755 $(PROGRAM) $(PREFIX)/bin
	@if [ ! -e $(PREFIX)/share/man/man1 ]; then \
	  echo install -d -m 0755 $(PREFIX)/share/man/man1; \
	  $(INSTALL) -d -m 0755 $(PREFIX)/share/man/man1; \
	fi
	$(INSTALL) -m 0644 $(PROGRAM).1 $(PREFIX)/share/man/man1
	$(COMPRESS_PROG) $(PREFIX)/share/man/man1/$(PROGRAM).1
	@if [ ! -e $(PREFIX)/share/pixmaps ]; then \
	  echo install -d -m 0755 $(PREFIX)/share/pixmaps; \
	  $(INSTALL) -d -m 0755 $(PREFIX)/share/pixmaps; \
	fi
	$(INSTALL) -m 0644 qiv.png $(PREFIX)/share/pixmaps/qiv.png
	@if [ ! -e $(PREFIX)/share/applications ]; then \
	  echo install -d -m 0755 $(PREFIX)/share/applications; \
	  $(INSTALL) -d -m 0755 $(PREFIX)/share/applications; \
	fi
	$(INSTALL) -m 0644 qiv.desktop $(PREFIX)/share/applications/qiv.desktop
	@if ./qiv -f ./intro.jpg ; \
	then echo "-- Test Passed --" ; \
	else echo "-- Test Failed --" ; \
	fi
	@echo "\nDont forget to look into the \"qiv-command\" file and install it!\n-> cp qiv-command.example $(PREFIX)/bin/qiv-command\n\n"

# the end... ;-)