-
Notifications
You must be signed in to change notification settings - Fork 636
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
build: Add scripts/makefile.c89; update other makefiles
Add scripts/makefile.c89 and refactor scripts/makefile.emcc, scripts/makefile.clang and scripts/makefile.gcc Refactor variable definitions inside scripts/makefile.clang, scripts/makefile.gcc and scripts/makefile.emcc, and start using the option `-pedantic-errors` unconditionally. This option was first implemented in GCC version 3.1, and it was available in Clang and in other Clang-based compilers (e.g. Emscripten) from the beginning. Add scripts/makefile.c89, derived from the above makefiles, but with `-pedantic-errors -std=c89`. We aren't enabling the C89 level by default, to avoid any incompatibility, whether intentional or accidental, with the compiler's default language level. However, we are still continuing to support C89 in the 'libpng16' branch, and this special makefile can be used for testing purposes.
- Loading branch information
Showing
4 changed files
with
134 additions
and
21 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,97 @@ | ||
# makefile for libpng using an ANSI C89 compiler | ||
# Copyright (C) 2000, 2014, 2019-2025 Cosmin Truta | ||
# Copyright (C) 2008, 2014 Glenn Randers-Pehrson | ||
# Copyright (C) 1995 Guy Eric Schalnat, Group 42, Inc. | ||
# | ||
# This code is released under the libpng license. | ||
# For conditions of distribution and use, see the disclaimer | ||
# and license in png.h | ||
|
||
# Location of the zlib library and include files | ||
ZLIBINC = ../zlib | ||
ZLIBLIB = ../zlib | ||
|
||
# Compiler, linker, lib and other tools | ||
#CC = c89 | ||
CC = cc | ||
LD = $(CC) | ||
AR = ar | ||
RANLIB = ranlib | ||
CP = cp | ||
RM_F = rm -f | ||
|
||
# Compiler and linker flags | ||
NOHWOPT = -DPNG_ARM_NEON_OPT=0 -DPNG_MIPS_MSA_OPT=0 \ | ||
-DPNG_POWERPC_VSX_OPT=0 -DPNG_INTEL_SSE_OPT=0 | ||
STDC = -pedantic-errors -std=c89 | ||
WARN = -Wall -Wextra -Wundef | ||
WARNMORE = -Wcast-align -Wconversion -Wshadow -Wpointer-arith -Wwrite-strings \ | ||
-Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes | ||
LOCAL_CPPFLAGS = $(NOHWOPT) | ||
CPPFLAGS = -I$(ZLIBINC) # -DPNG_DEBUG=5 | ||
ALL_CPPFLAGS = $(LOCAL_CPPFLAGS) $(CPPFLAGS) | ||
LOCAL_CFLAGS = $(STDC) $(WARN) # $(WARNMORE) | ||
CFLAGS = -O2 # -g | ||
ALL_CFLAGS = $(LOCAL_CFLAGS) $(CFLAGS) | ||
ARFLAGS = rc | ||
LDFLAGS = -L$(ZLIBLIB) # -g | ||
LIBS = -lz -lm | ||
|
||
# File extensions | ||
EXEEXT = | ||
|
||
# Pre-built configuration | ||
# See scripts/pnglibconf.mak for more options | ||
PNGLIBCONF_H_PREBUILT = scripts/pnglibconf.h.prebuilt | ||
|
||
# File lists | ||
OBJS = png.o pngerror.o pngget.o pngmem.o pngpread.o \ | ||
pngread.o pngrio.o pngrtran.o pngrutil.o pngset.o \ | ||
pngtrans.o pngwio.o pngwrite.o pngwtran.o pngwutil.o | ||
|
||
# Targets | ||
all: static | ||
|
||
pnglibconf.h: $(PNGLIBCONF_H_PREBUILT) | ||
$(CP) $(PNGLIBCONF_H_PREBUILT) $@ | ||
|
||
.c.o: | ||
$(CC) -c $(ALL_CPPFLAGS) $(ALL_CFLAGS) -o $@ $*.c | ||
|
||
static: libpng.a pngtest$(EXEEXT) | ||
|
||
shared: | ||
@echo This is a generic makefile that cannot create shared libraries. | ||
@echo Please use a configuration that is specific to your platform. | ||
@false | ||
|
||
libpng.a: $(OBJS) | ||
$(AR) $(ARFLAGS) $@ $(OBJS) | ||
$(RANLIB) $@ | ||
|
||
test: pngtest$(EXEEXT) | ||
./pngtest$(EXEEXT) | ||
|
||
pngtest$(EXEEXT): pngtest.o libpng.a | ||
$(LD) $(LDFLAGS) -o $@ pngtest.o libpng.a $(LIBS) | ||
|
||
clean: | ||
$(RM_F) *.o libpng.a pngtest$(EXEEXT) pngout.png pnglibconf.h | ||
|
||
png.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h | ||
pngerror.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h | ||
pngget.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h | ||
pngmem.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h | ||
pngpread.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h | ||
pngread.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h | ||
pngrio.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h | ||
pngrtran.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h | ||
pngrutil.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h | ||
pngset.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h | ||
pngtrans.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h | ||
pngwio.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h | ||
pngwrite.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h | ||
pngwtran.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h | ||
pngwutil.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h | ||
|
||
pngtest.o: png.h pngconf.h pnglibconf.h |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters