• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# makefile for libpng on BeOS x86 ELF with gcc
2# modified from makefile.linux by Sander Stoks
3# Copyright (C) 2020-2022 Cosmin Truta
4# Copyright (C) 2002, 2006, 2008, 2010-2014 Glenn Randers-Pehrson
5# Copyright (C) 1999 Greg Roelofs
6# Copyright (C) 1996, 1997 Andreas Dilger
7#
8# This code is released under the libpng license.
9# For conditions of distribution and use, see the disclaimer
10# and license in png.h
11
12# Library name:
13LIBNAME=libpng16
14PNGMAJ=16
15
16# Shared library names:
17LIBSO=$(LIBNAME).so
18LIBSOMAJ=$(LIBNAME).so.$(PNGMAJ)
19
20# Utilities:
21CC=gcc
22AR_RC=ar rc
23RANLIB=ranlib
24MKDIR_P=mkdir -p
25LN_SF=ln -sf
26CP=cp
27RM_F=/bin/rm -f
28
29# Where the zlib library and include files are located
30ZLIBLIB=/usr/local/lib
31ZLIBINC=/usr/local/include
32
33ALIGN=
34# For i386:
35# ALIGN=-malign-loops=2 -malign-functions=2
36
37WARNMORE=-Wwrite-strings -Wpointer-arith -Wshadow \
38	-Wmissing-declarations -Wtraditional -Wcast-align \
39	-Wstrict-prototypes -Wmissing-prototypes # -Wconversion
40
41# On BeOS, -O1 is actually better than -O3.  This is a known bug but it's
42# still here in R4.5
43CPPFLAGS=-I$(ZLIBINC) # -DPNG_DEBUG=5
44CFLAGS=-O1 -funroll-loops $(ALIGN) -Wall -Wextra -Wundef # $(WARNMORE) -g
45# LDFLAGS=-L. -Wl,-rpath,. -L$(ZLIBLIB) -Wl,-rpath,$(ZLIBLIB) -lpng -lz
46LDFLAGS=-L. -Wl,-soname=$(LIBSOMAJ) -L$(ZLIBLIB) -lz # -g
47
48# Pre-built configuration
49# See scripts/pnglibconf.mak for more options
50PNGLIBCONF_H_PREBUILT = scripts/pnglibconf.h.prebuilt
51
52OBJS = png.o pngerror.o pngget.o pngmem.o pngpread.o \
53       pngread.o pngrio.o pngrtran.o pngrutil.o pngset.o \
54       pngtrans.o pngwio.o pngwrite.o pngwtran.o pngwutil.o
55
56OBJSDLL = $(OBJS)
57
58.SUFFIXES:      .c .o
59
60.c.o:
61	$(CC) -c $(CPPFLAGS) $(CFLAGS) -o $@ $<
62
63all: libpng.a $(LIBSO) pngtest
64
65pnglibconf.h: $(PNGLIBCONF_H_PREBUILT)
66	$(CP) $(PNGLIBCONF_H_PREBUILT) $@
67
68libpng.a: $(OBJS)
69	$(AR_RC) $@ $(OBJS)
70	$(RANLIB) $@
71
72$(LIBSO): $(LIBSOMAJ)
73	$(LN_SF) $(LIBSOMAJ) $(LIBSO)
74	cp $(LIBSO)* /boot/home/config/lib
75
76$(LIBSOMAJ): $(OBJSDLL)
77	$(CC) -nostart -Wl,-soname,$(LIBSOMAJ) \
78	 -o $(LIBSOMAJ) $(OBJSDLL) $(LDFLAGS)
79
80pngtest: pngtest.o $(LIBSO)
81	$(CC) -L$(ZLIBLIB) -L. -lz -lpng16 -o pngtest pngtest.o
82
83test: pngtest
84	./pngtest
85
86install:
87	@echo "The $@ target is no longer supported by this makefile."
88	@false
89
90install-static:
91	@echo "The $@ target is no longer supported by this makefile."
92	@false
93
94install-shared:
95	@echo "The $@ target is no longer supported by this makefile."
96	@false
97
98clean:
99	$(RM_F) *.o libpng.a pngtest pngout.png
100	$(RM_F) $(LIBSO) $(LIBSOMAJ)* pnglibconf.h
101
102# DO NOT DELETE THIS LINE -- make depend depends on it.
103
104png.o      png.pic.o:      png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
105pngerror.o pngerror.pic.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
106pngget.o   pngget.pic.o:   png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
107pngmem.o   pngmem.pic.o:   png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
108pngpread.o pngpread.pic.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
109pngread.o  pngread.pic.o:  png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
110pngrio.o   pngrio.pic.o:   png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
111pngrtran.o pngrtran.pic.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
112pngrutil.o pngrutil.pic.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
113pngset.o   pngset.pic.o:   png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
114pngtrans.o pngtrans.pic.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
115pngwio.o   pngwio.pic.o:   png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
116pngwrite.o pngwrite.pic.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
117pngwtran.o pngwtran.pic.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
118pngwutil.o pngwutil.pic.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
119
120pngtest.o: png.h pngconf.h pnglibconf.h
121