mirror of
https://github.com/openharmony/third_party_giflib.git
synced 2026-07-01 06:41:59 -04:00
174 lines
4.6 KiB
Makefile
174 lines
4.6 KiB
Makefile
# Top-level Unix makefile for the GIFLIB package
|
|
# Should work for all Unix versions
|
|
#
|
|
# If your platform has the OpenBSD reallocarray(3) call, you may
|
|
# add -DHAVE_REALLOCARRAY to CFLAGS to use that, saving a bit
|
|
# of code space in the shared library.
|
|
|
|
#
|
|
OFLAGS = -O0 -g
|
|
OFLAGS = -O2
|
|
CFLAGS = -std=gnu99 -fPIC -Wall -Wno-format-truncation $(OFLAGS)
|
|
|
|
SHELL = /bin/sh
|
|
TAR = tar
|
|
INSTALL = install
|
|
|
|
PREFIX = /usr/local
|
|
BINDIR = $(PREFIX)/bin
|
|
INCDIR = $(PREFIX)/include
|
|
LIBDIR = $(PREFIX)/lib
|
|
MANDIR = $(PREFIX)/share/man
|
|
|
|
# No user-serviceable parts below this line
|
|
|
|
VERSION:=$(shell ./getversion)
|
|
LIBMAJOR=7
|
|
LIBMINOR=2
|
|
LIBPOINT=0
|
|
LIBVER=$(LIBMAJOR).$(LIBMINOR).$(LIBPOINT)
|
|
|
|
SOURCES = dgif_lib.c egif_lib.c gifalloc.c gif_err.c gif_font.c \
|
|
gif_hash.c openbsd-reallocarray.c
|
|
HEADERS = gif_hash.h gif_lib.h gif_lib_private.h
|
|
OBJECTS = $(SOURCES:.c=.o)
|
|
|
|
USOURCES = qprintf.c quantize.c getarg.c
|
|
UHEADERS = getarg.h
|
|
UOBJECTS = $(USOURCES:.c=.o)
|
|
|
|
# Some utilities are installed
|
|
INSTALLABLE = \
|
|
gif2rgb \
|
|
gifbuild \
|
|
giffix \
|
|
giftext \
|
|
giftool \
|
|
gifclrmp
|
|
|
|
# Some utilities are only used internally for testing.
|
|
# There is a parallel list in doc/Makefile.
|
|
# These are all candidates for removal in future releases.
|
|
UTILS = $(INSTALLABLE) \
|
|
gifbg \
|
|
gifcolor \
|
|
gifecho \
|
|
giffilter \
|
|
gifhisto \
|
|
gifinto \
|
|
gifsponge \
|
|
gifwedge
|
|
|
|
LDLIBS=libgif.a -lm
|
|
|
|
all: libgif.so libgif.a libutil.so libutil.a $(UTILS)
|
|
$(MAKE) -C doc
|
|
|
|
$(UTILS):: libgif.a libutil.a
|
|
|
|
libgif.so: $(OBJECTS) $(HEADERS)
|
|
$(CC) $(CFLAGS) -shared $(LDFLAGS) -Wl,-soname -Wl,libgif.so.$(LIBMAJOR) -o libgif.so $(OBJECTS)
|
|
|
|
libgif.a: $(OBJECTS) $(HEADERS)
|
|
$(AR) rcs libgif.a $(OBJECTS)
|
|
|
|
libutil.so: $(UOBJECTS) $(UHEADERS)
|
|
$(CC) $(CFLAGS) -shared $(LDFLAGS) -Wl,-soname -Wl,libutil.so.$(LIBMAJOR) -o libutil.so $(UOBJECTS)
|
|
|
|
libutil.a: $(UOBJECTS) $(UHEADERS)
|
|
$(AR) rcs libutil.a $(UOBJECTS)
|
|
|
|
clean:
|
|
rm -f $(UTILS) $(TARGET) libgetarg.a libgif.a libgif.so libutil.a libutil.so *.o
|
|
rm -f libgif.so.$(LIBMAJOR).$(LIBMINOR).$(LIBPOINT)
|
|
rm -f libgif.so.$(LIBMAJOR)
|
|
rm -fr doc/*.1 *.html doc/staging
|
|
|
|
check: all
|
|
$(MAKE) -C tests
|
|
|
|
# Installation/uninstallation
|
|
|
|
install: all install-bin install-include install-lib install-man
|
|
install-bin: $(INSTALLABLE)
|
|
$(INSTALL) -d "$(DESTDIR)$(BINDIR)"
|
|
$(INSTALL) $^ "$(DESTDIR)$(BINDIR)"
|
|
install-include:
|
|
$(INSTALL) -d "$(DESTDIR)$(INCDIR)"
|
|
$(INSTALL) -m 644 gif_lib.h "$(DESTDIR)$(INCDIR)"
|
|
install-lib:
|
|
$(INSTALL) -d "$(DESTDIR)$(LIBDIR)"
|
|
$(INSTALL) -m 644 libgif.a "$(DESTDIR)$(LIBDIR)/libgif.a"
|
|
$(INSTALL) -m 755 libgif.so "$(DESTDIR)$(LIBDIR)/libgif.so.$(LIBVER)"
|
|
ln -sf libgif.so.$(LIBVER) "$(DESTDIR)$(LIBDIR)/libgif.so.$(LIBMAJOR)"
|
|
ln -sf libgif.so.$(LIBMAJOR) "$(DESTDIR)$(LIBDIR)/libgif.so"
|
|
install-man:
|
|
$(INSTALL) -d "$(DESTDIR)$(MANDIR)/man1"
|
|
$(INSTALL) -m 644 doc/*.1 "$(DESTDIR)$(MANDIR)/man1"
|
|
uninstall: uninstall-man uninstall-include uninstall-lib uninstall-bin
|
|
uninstall-bin:
|
|
cd "$(DESTDIR)$(BINDIR)" && rm -f $(INSTALLABLE)
|
|
uninstall-include:
|
|
rm -f "$(DESTDIR)$(INCDIR)/gif_lib.h"
|
|
uninstall-lib:
|
|
cd "$(DESTDIR)$(LIBDIR)" && \
|
|
rm -f libgif.a libgif.so libgif.so.$(LIBMAJOR) libgif.so.$(LIBVER)
|
|
uninstall-man:
|
|
cd "$(DESTDIR)$(MANDIR)/man1" && rm -f $(shell cd doc >/dev/null && echo *.1)
|
|
|
|
# Make distribution tarball
|
|
#
|
|
# We include all of the XML, and also generated manual pages
|
|
# so people working from the distribution tarball won't need xmlto.
|
|
|
|
EXTRAS = README \
|
|
NEWS \
|
|
TODO \
|
|
COPYING \
|
|
getversion \
|
|
ChangeLog \
|
|
build.adoc \
|
|
history.adoc \
|
|
control \
|
|
doc/whatsinagif \
|
|
doc/gifstandard \
|
|
|
|
DSOURCES = Makefile *.[ch]
|
|
DOCS = doc/*.xml doc/*.1 doc/*.html doc/index.html.in doc/00README doc/Makefile
|
|
ALL = $(DSOURCES) $(DOCS) tests pic $(EXTRAS)
|
|
giflib-$(VERSION).tar.gz: $(ALL)
|
|
$(TAR) --transform='s:^:giflib-$(VERSION)/:' -czf giflib-$(VERSION).tar.gz $(ALL)
|
|
giflib-$(VERSION).tar.bz2: $(ALL)
|
|
$(TAR) --transform='s:^:giflib-$(VERSION)/:' -cjf giflib-$(VERSION).tar.bz2 $(ALL)
|
|
|
|
dist: giflib-$(VERSION).tar.gz giflib-$(VERSION).tar.bz2
|
|
|
|
# Auditing tools.
|
|
|
|
# Check that getversion hasn't gone pear-shaped.
|
|
version:
|
|
@echo $(VERSION)
|
|
|
|
# cppcheck should run clean
|
|
cppcheck:
|
|
cppcheck --inline-suppr --template gcc --enable=all --suppress=unusedFunction --force *.[ch]
|
|
|
|
# Verify the build
|
|
distcheck: all
|
|
$(MAKE) giflib-$(VERSION).tar.gz
|
|
tar xzvf giflib-$(VERSION).tar.gz
|
|
$(MAKE) -C giflib-$(VERSION)
|
|
rm -fr giflib-$(VERSION)
|
|
|
|
# release using the shipper tool
|
|
release: all distcheck
|
|
$(MAKE) -C doc website
|
|
shipper --no-stale version=$(VERSION) | sh -e -x
|
|
rm -fr doc/staging
|
|
|
|
# Refresh the website
|
|
refresh: all
|
|
$(MAKE) -C doc website
|
|
shipper --no-stale -w version=$(VERSION) | sh -e -x
|
|
rm -fr doc/staging
|