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
|
ifeq ($(SRCDIR)x,x)
SRCDIR = $(CURDIR)/..
BUILDDIR = $(SRCDIR)
endif
SUBDIR = editor
VPATH=.:$(SRCDIR)/$(SUBDIR)
include $(BUILDDIR)/config.mk
SUBDIRS = pamflip specialty
# We tend to separate out the build targets so that we don't have
# any more dependencies for a given target than it really needs.
# That way, if there is a problem with a dependency, we can still
# successfully build all the stuff that doesn't depend upon it.
# This package is so big, it's useful even when some parts won't
# build.
PORTBINARIES = pamaddnoise pamaltsat pambackground pambrighten \
pamcat pamcomp pamcut \
pamdice pamditherbw pamedge pamenlarge \
pamfunc pamhomography pamhue pamlevels \
pammasksharpen pammixmulti \
pamperspective pamrecolor pamrestack pamrubber \
pamscale pamshuffle pamsistoaglyph pamstretch pamthreshold \
pamundice pamwipeout \
pbmclean pbmmask pbmpscale pbmreduce \
pgmdeshadow pgmenhance \
pgmmedian \
pnmalias pnmconvol pnmcrop \
pnmgamma \
pnmhisteq pnminvert pnmmontage \
pnmnlfilt pnmnorm pnmpad pnmpaste \
pnmremap pnmrotate \
pnmscalefixed pnmshear pnmsmooth pnmstitch pnmtile \
ppmchange ppmcolormask \
ppmdim ppmdist ppmdither ppmdraw \
ppmflash ppmlabel ppmmix \
# We don't include programs that have special library dependencies in the
# merge scheme, because we don't want those dependencies to prevent us
# from building all the other programs.
NOMERGEBINARIES =
MERGEBINARIES = $(PORTBINARIES)
BINARIES = $(MERGEBINARIES) $(NOMERGEBINARIES)
SCRIPTS = ppmbrighten pnmflip ppmfade ppmquant ppmshadow \
pamstretch-gen pnmmargin pnmquant pnmquantall
OBJECTS = $(BINARIES:%=%.o)
MERGE_OBJECTS = $(MERGEBINARIES:%=%.o2)
HAVE_MERGE_COMPAT=YES
.PHONY: all
all: $(BINARIES) $(SUBDIRS:%=%/all)
include $(SRCDIR)/common.mk
install.bin install.merge: install.bin.local
.PHONY: install.bin.local
install.bin.local: $(PKGDIR)/bin
# Remember that $(SYMLINK) might just be a copy command.
# In December 2001, pamstretch replaced pnminterp and pamstretch-getn
# replaced pnminterp-gen
cd $(PKGDIR)/bin ; \
rm -f pnminterp$(EXE); \
$(SYMLINK) pamstretch$(EXE) pnminterp$(EXE)
cd $(PKGDIR)/bin ; \
rm -f pnminterp-gen$(EXE); \
$(SYMLINK) pamstretch-gen$(EXE) pnminterp-gen$(EXE)
# In March 2002, pnmnorm replaced ppmnorm and pgmnorm
cd $(PKGDIR)/bin ; \
rm -f ppmnorm$(EXE) ; \
$(SYMLINK) pnmnorm$(EXE) ppmnorm$(EXE)
cd $(PKGDIR)/bin ; \
rm -f pgmnorm$(EXE) ; \
$(SYMLINK) pnmnorm$(EXE) pgmnorm$(EXE)
# In March 2003, pamedge replaced pgmedge
cd $(PKGDIR)/bin ; \
rm -f pgmedge$(EXE) ; \
$(SYMLINK) pamedge$(EXE) pgmedge$(EXE)
# In October 2004, pamenlarge replaced pnmenlarge
cd $(PKGDIR)/bin ; \
rm -f pnmenlarge$(EXE) ; \
$(SYMLINK) pamenlarge$(EXE) pnmenlarge$(EXE)
# In March 2009, pamcut replaced pnmcut (but pamcut is much older -- pnmcut
# was obsoleted by pamcut long before this).
cd $(PKGDIR)/bin ; \
rm -f pnmcut$(EXE) ; \
$(SYMLINK) pamcut$(EXE) pnmcut$(EXE)
# In March 2009, pamscale replaced pnmscale (but pamscale is much older --
# pnmscale was obsoleted by pamscale long before this).
cd $(PKGDIR)/bin ; \
rm -f pnmscale$(EXE) ; \
$(SYMLINK) pamscale$(EXE) pnmscale$(EXE)
# In March 2012, pnmquantall replaced ppmquantall
cd $(PKGDIR)/bin ; \
rm -f ppmquantall$(EXE) ; \
$(SYMLINK) pnmquantall$(EXE) ppmquantall$(EXE)
# In August 2014, pamcomp replaced pnmcomp
cd $(PKGDIR)/bin ; \
rm -f pnmcomp$(EXE) ; \
$(SYMLINK) pamcomp$(EXE) pnmcomp$(EXE)
# In August 2022, pamcat replaced pnmcat
cd $(PKGDIR)/bin ; \
rm -f pnmcat$(EXE) ; \
$(SYMLINK) pamcat$(EXE) pnmcat$(EXE)
mergecomptrylist:
cat /dev/null >$@
echo "TRY(\"pnminterp\", main_pamstretch);" >>$@
echo "TRY(\"pgmnorm\", main_pnmnorm);" >>$@
echo "TRY(\"ppmnorm\", main_pnmnorm);" >>$@
echo "TRY(\"pgmedge\", main_pamedge);" >>$@
echo "TRY(\"pnmenlarge\", main_pamenlarge);" >>$@
echo "TRY(\"pnmcut\", main_pamcut);" >>$@
echo "TRY(\"pnmscale\", main_pamscale);" >>$@
echo "TRY(\"pnmcomp\", main_pamcomp);" >>$@
echo "TRY(\"pnmcat\", main_pamcomp);" >>$@
|