From b60656ecdc58407735cdfd5145d2bdf6a122938d Mon Sep 17 00:00:00 2001 From: Cosmin Truta Date: Wed, 14 Sep 2022 21:35:33 +0300 Subject: scripts: Disable the hardware-optimized compilation in legacy makefiles Fix the legacy makefile builds on ARM, MIPS and PowerPC, where hardware-optimized compilation was enabled by default in the generic source files, but without including the machine-specific source files. Delete scripts/makefile.linux-opt. --- scripts/makefile.clang | 6 +- scripts/makefile.darwin | 6 +- scripts/makefile.gcc | 6 +- scripts/makefile.linux | 7 +- scripts/makefile.linux-opt | 256 --------------------------------------------- scripts/makefile.std | 4 +- 6 files changed, 23 insertions(+), 262 deletions(-) delete mode 100644 scripts/makefile.linux-opt diff --git a/scripts/makefile.clang b/scripts/makefile.clang index fe0544a2b..2e154236f 100644 --- a/scripts/makefile.clang +++ b/scripts/makefile.clang @@ -19,10 +19,14 @@ 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 WARNMORE = -Wwrite-strings -Wpointer-arith -Wshadow \ -Wmissing-declarations -Wtraditional -Wcast-align \ -Wstrict-prototypes -Wmissing-prototypes # -Wconversion -CPPFLAGS = -I$(ZLIBINC) # -DPNG_DEBUG=5 +DEFS = $(NOHWOPT) +CPPFLAGS = -I$(ZLIBINC) $(DEFS) # -DPNG_DEBUG=5 CFLAGS = -O2 -Wall -Wextra -Wundef # $(WARNMORE) -g LDFLAGS = -L$(ZLIBLIB) # -g LIBS = -lz -lm diff --git a/scripts/makefile.darwin b/scripts/makefile.darwin index 9cc0381f4..e41a3e63f 100644 --- a/scripts/makefile.darwin +++ b/scripts/makefile.darwin @@ -12,6 +12,7 @@ # where "make install" puts libpng.a, libpng16.dylib, png.h, pngconf.h, # and pnglibconf.h + prefix=/usr/local exec_prefix=$(prefix) @@ -39,7 +40,10 @@ LN_SF=ln -sf CP=cp RM_F=rm -f -CPPFLAGS=-I$(ZLIBINC) +NOHWOPT=-DPNG_ARM_NEON_OPT=0 -DPNG_MIPS_MSA_OPT=0 \ + -DPNG_POWERPC_VSX_OPT=0 -DPNG_INTEL_SSE_OPT=0 +DEFS=$(NOHWOPT) +CPPFLAGS=-I$(ZLIBINC) $(DEFS) CFLAGS=-O3 -funroll-loops -Wall -Wextra -Wundef LDFLAGS=-L. -L$(ZLIBLIB) -lpng16 -lz diff --git a/scripts/makefile.gcc b/scripts/makefile.gcc index e2ea8972a..b215a70fb 100644 --- a/scripts/makefile.gcc +++ b/scripts/makefile.gcc @@ -19,10 +19,14 @@ 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 WARNMORE = -Wwrite-strings -Wpointer-arith -Wshadow \ -Wmissing-declarations -Wtraditional -Wcast-align \ -Wstrict-prototypes -Wmissing-prototypes # -Wconversion -CPPFLAGS = -I$(ZLIBINC) # -DPNG_DEBUG=5 +DEFS = $(NOHWOPT) +CPPFLAGS = -I$(ZLIBINC) $(DEFS) # -DPNG_DEBUG=5 CFLAGS = -O2 -Wall -Wextra -Wundef # $(WARNMORE) -g LDFLAGS = -L$(ZLIBLIB) # -g LIBS = -lz -lm diff --git a/scripts/makefile.linux b/scripts/makefile.linux index 7b1b9b05d..beffbbb73 100644 --- a/scripts/makefile.linux +++ b/scripts/makefile.linux @@ -40,11 +40,14 @@ exec_prefix=$(prefix) ZLIBLIB=../zlib ZLIBINC=../zlib +# 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 WARNMORE=-Wwrite-strings -Wpointer-arith -Wshadow \ -Wmissing-declarations -Wtraditional -Wcast-align \ -Wstrict-prototypes -Wmissing-prototypes # -Wconversion - -CPPFLAGS=-I$(ZLIBINC) # -DPNG_DEBUG=5 +DEFS=$(NOHWOPT) +CPPFLAGS=-I$(ZLIBINC) $(DEFS) # -DPNG_DEBUG=5 CFLAGS=-O3 -funroll-loops -Wall -Wextra -Wundef # $(WARNMORE) -g LDFLAGS=-L. -Wl,-rpath,. -L$(ZLIBLIB) -Wl,-rpath,$(ZLIBLIB) -lpng16 -lz -lm # -g LDFLAGS_A=-L$(ZLIBLIB) -Wl,-rpath,$(ZLIBLIB) libpng.a -lz -lm # -g diff --git a/scripts/makefile.linux-opt b/scripts/makefile.linux-opt deleted file mode 100644 index 52874c91a..000000000 --- a/scripts/makefile.linux-opt +++ /dev/null @@ -1,256 +0,0 @@ -# makefile for libpng.a and libpng16.so on Linux ELF with gcc -# Copyright (C) 2020-2022 Cosmin Truta -# Copyright (C) 1998, 1999, 2002, 2006, 2008, 2010-2014, 2017 Greg Roelofs and -# Glenn Randers-Pehrson -# Copyright (C) 1996, 1997 Andreas Dilger -# -# This code is released under the libpng license. -# For conditions of distribution and use, see the disclaimer -# and license in png.h - -# Library name: -LIBNAME = libpng16 -PNGMAJ = 16 -RELEASE = 37 - -# Shared library names: -LIBSO=$(LIBNAME).so -LIBSOMAJ=$(LIBNAME).so.$(PNGMAJ) -LIBSOREL=$(LIBSOMAJ).$(RELEASE) -OLDSO=libpng.so - -# Utilities: -CC=gcc -AR_RC=ar rc -RANLIB=ranlib -MKDIR_P=mkdir -p -LN_SF=ln -sf -CP=cp -RM_F=rm -f - -# where "make install" puts libpng16.a, libpng16.so*, -# libpng16/png.h, libpng16/pngconf.h, and libpng16/pnglibconf.h -# Prefix must be a full pathname. -prefix=/usr/local -exec_prefix=$(prefix) - -# Where the zlib library and include files are located. -#ZLIBLIB=/usr/local/lib -#ZLIBINC=/usr/local/include -ZLIBLIB=../zlib -ZLIBINC=../zlib - -WARNMORE=-Wwrite-strings -Wpointer-arith -Wshadow \ - -Wmissing-declarations -Wtraditional -Wcast-align \ - -Wstrict-prototypes -Wmissing-prototypes # -Wconversion - -CPPFLAGS=-I$(ZLIBINC) -CPPFLAGS += -DPNG_ARM_NEON -CPPFLAGS += -DPNG_MIPS_MSA -CPPFLAGS += -DPNG_INTEL_SSE -CPPFLAGS += -DPNG_POWERPC_VSX - -CFLAGS=-O3 -funroll-loops -Wall -Wextra -Wundef # $(WARNMORE) -g -LDFLAGS=-L. -Wl,-rpath,. -L$(ZLIBLIB) -Wl,-rpath,$(ZLIBLIB) -lpng16 -lz -lm # -g -LDFLAGS_A=-L$(ZLIBLIB) -Wl,-rpath,$(ZLIBLIB) libpng.a -lz -lm # -g - -INCPATH=$(prefix)/include -LIBPATH=$(exec_prefix)/lib -MANPATH=$(prefix)/man -BINPATH=$(exec_prefix)/bin - -# override DESTDIR= on the make install command line to easily support -# installing into a temporary location. Example: -# -# make install DESTDIR=/tmp/build/libpng -# -# If you're going to install into a temporary location -# via DESTDIR, $(DESTDIR)$(prefix) must already exist before -# you execute make install. -DESTDIR= - -DB=$(DESTDIR)$(BINPATH) -DI=$(DESTDIR)$(INCPATH) -DL=$(DESTDIR)$(LIBPATH) -DM=$(DESTDIR)$(MANPATH) - -# 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 \ - arm/arm_init.o arm/filter_neon_intrinsics.o \ - intel/intel_init.o intel/filter_sse2_intrinsics.o \ - mips/mips_init.o mips/filter_msa_intrinsics.o \ - powerpc/powerpc_init.o powerpc/filter_vsx_intrinsics.o - -OBJSDLL = $(OBJS:.o=.pic.o) - -.SUFFIXES: .c .o .pic.o - -.c.o: - $(CC) -c $(CPPFLAGS) $(CFLAGS) -o $@ $< - -.c.pic.o: - $(CC) -c $(CPPFLAGS) $(CFLAGS) -fPIC -o $@ $*.c - -all: libpng.a $(LIBSO) pngtest pngtest-static libpng.pc libpng-config - -pnglibconf.h: $(PNGLIBCONF_H_PREBUILT) - $(CP) $(PNGLIBCONF_H_PREBUILT) $@ - -libpng.a: $(OBJS) - $(AR_RC) $@ $(OBJS) - $(RANLIB) $@ - -libpng.pc: - cat scripts/libpng.pc.in | sed -e s!@prefix@!$(prefix)! \ - -e s!@exec_prefix@!$(exec_prefix)! \ - -e s!@libdir@!$(LIBPATH)! \ - -e s!@includedir@!$(INCPATH)! \ - -e s!-lpng16!-lpng16\ -lz\ -lm! > libpng.pc - -libpng-config: - ( cat scripts/libpng-config-head.in; \ - echo prefix=\"$(prefix)\"; \ - echo I_opts=\"-I$(INCPATH)/$(LIBNAME)\"; \ - echo L_opts=\"-L$(LIBPATH)\"; \ - echo R_opts=\"-Wl,-rpath,$(LIBPATH)\"; \ - echo libs=\"-lpng16 -lz -lm\"; \ - cat scripts/libpng-config-body.in ) > libpng-config - chmod +x libpng-config - -$(LIBSO): $(LIBSOMAJ) - $(LN_SF) $(LIBSOMAJ) $(LIBSO) - -$(LIBSOMAJ): $(OBJSDLL) - $(CC) -shared -Wl,-soname,$(LIBSOMAJ) -o $(LIBSOMAJ) $(OBJSDLL) - -pngtest: pngtest.o $(LIBSO) - $(CC) -o pngtest $(CFLAGS) pngtest.o $(LDFLAGS) - -pngtest-static: pngtest.o libpng.a - $(CC) -o pngtest-static $(CFLAGS) pngtest.o $(LDFLAGS_A) - -test: pngtest pngtest-static - @echo "" - @echo " Running pngtest dynamically linked with $(LIBSO):" - @echo "" - ./pngtest - @echo "" - @echo " Running pngtest statically linked with libpng.a:" - @echo "" - ./pngtest-static - -install-headers: png.h pngconf.h pnglibconf.h - -@if [ ! -d $(DI) ]; then $(MKDIR_P) $(DI); fi - -@if [ ! -d $(DI)/$(LIBNAME) ]; then $(MKDIR_P) $(DI)/$(LIBNAME); fi - cp png.h pngconf.h pnglibconf.h $(DI)/$(LIBNAME) - chmod 644 $(DI)/$(LIBNAME)/png.h $(DI)/$(LIBNAME)/pngconf.h $(DI)/$(LIBNAME)/pnglibconf.h - -@$(RM_F) $(DI)/png.h $(DI)/pngconf.h $(DI)/pnglibconf.h - -@$(RM_F) $(DI)/libpng - (cd $(DI); $(LN_SF) $(LIBNAME) libpng; $(LN_SF) $(LIBNAME)/* .) - -install-static: install-headers libpng.a - -@if [ ! -d $(DL) ]; then $(MKDIR_P) $(DL); fi - cp libpng.a $(DL)/$(LIBNAME).a - chmod 644 $(DL)/$(LIBNAME).a - -@$(RM_F) $(DL)/libpng.a - (cd $(DL); $(LN_SF) $(LIBNAME).a libpng.a) - -install-shared: install-headers $(LIBSOMAJ) libpng.pc - -@if [ ! -d $(DL) ]; then $(MKDIR_P) $(DL); fi - -@$(RM_F) $(DL)/$(LIBSO) - -@$(RM_F) $(DL)/$(LIBSOREL) - -@$(RM_F) $(DL)/$(OLDSO) - cp $(LIBSOMAJ) $(DL)/$(LIBSOREL) - chmod 755 $(DL)/$(LIBSOREL) - (cd $(DL); \ - $(LN_SF) $(LIBSOREL) $(LIBSO); \ - $(LN_SF) $(LIBSO) $(OLDSO)) - -@if [ ! -d $(DL)/pkgconfig ]; then $(MKDIR_P) $(DL)/pkgconfig; fi - -@$(RM_F) $(DL)/pkgconfig/$(LIBNAME).pc - -@$(RM_F) $(DL)/pkgconfig/libpng.pc - cp libpng.pc $(DL)/pkgconfig/$(LIBNAME).pc - chmod 644 $(DL)/pkgconfig/$(LIBNAME).pc - (cd $(DL)/pkgconfig; $(LN_SF) $(LIBNAME).pc libpng.pc) - -install-man: libpng.3 libpngpf.3 png.5 - -@if [ ! -d $(DM) ]; then $(MKDIR_P) $(DM); fi - -@if [ ! -d $(DM)/man3 ]; then $(MKDIR_P) $(DM)/man3; fi - -@$(RM_F) $(DM)/man3/libpng.3 - -@$(RM_F) $(DM)/man3/libpngpf.3 - cp libpng.3 $(DM)/man3 - cp libpngpf.3 $(DM)/man3 - -@if [ ! -d $(DM)/man5 ]; then $(MKDIR_P) $(DM)/man5; fi - -@$(RM_F) $(DM)/man5/png.5 - cp png.5 $(DM)/man5 - -install-config: libpng-config - -@if [ ! -d $(DB) ]; then $(MKDIR_P) $(DB); fi - -@$(RM_F) $(DB)/libpng-config - -@$(RM_F) $(DB)/$(LIBNAME)-config - cp libpng-config $(DB)/$(LIBNAME)-config - chmod 755 $(DB)/$(LIBNAME)-config - (cd $(DB); $(LN_SF) $(LIBNAME)-config libpng-config) - -install: install-static install-shared install-man install-config - -# If you installed in $(DESTDIR), test-installed won't work until you -# move the library to its final location. Use test-dd to test it -# before then. - -test-dd: - echo - echo Testing installed dynamic shared library in $(DL). - $(CC) -I$(DI) $(CPPFLAGS) \ - `$(BINPATH)/$(LIBNAME)-config --cflags` pngtest.c \ - -L$(DL) -L$(ZLIBLIB) -Wl, -rpath,$(DL) -Wl,-rpath,$(ZLIBLIB) \ - -o pngtestd `$(BINPATH)/$(LIBNAME)-config --ldflags` - ./pngtestd pngtest.png - -test-installed: - echo - echo Testing installed dynamic shared library. - $(CC) $(CPPFLAGS) \ - `$(BINPATH)/$(LIBNAME)-config --cflags` pngtest.c \ - -L$(ZLIBLIB) -Wl,-rpath,$(ZLIBLIB) \ - -o pngtesti `$(BINPATH)/$(LIBNAME)-config --ldflags` - ./pngtesti pngtest.png - -clean: - $(RM_F) $(OBJS) $(OBJSDLL) libpng.a - $(RM_F) pngtest*.o pngtest pngtesti pngtest-static pngout.png - $(RM_F) $(LIBSO) $(LIBSOMAJ)* - $(RM_F) libpng.pc pnglibconf.h libpng-config - -# DO NOT DELETE THIS LINE -- make depend depends on it. - -png.o png.pic.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h -pngerror.o pngerror.pic.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h -pngget.o pngget.pic.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h -pngmem.o pngmem.pic.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h -pngpread.o pngpread.pic.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h -pngread.o pngread.pic.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h -pngrio.o pngrio.pic.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h -pngrtran.o pngrtran.pic.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h -pngrutil.o pngrutil.pic.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h -pngset.o pngset.pic.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h -pngtrans.o pngtrans.pic.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h -pngwio.o pngwio.pic.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h -pngwrite.o pngwrite.pic.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h -pngwtran.o pngwtran.pic.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h -pngwutil.o pngwutil.pic.o: png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h -arm/arm_init.o arm/arm_init.o: pngpriv.h -arm/filter_neon_intrinsics.o arm/filter_neon_intrinsics.pic.o: pngpriv.h -intel/intel_init.o intel/intel_init.pic.o: pngpriv.h -intel/filter_sse2_intrinsics.o intel/filter_sse2_intrinsics.pic.o: pngpriv.h -mips/mips_init.o mips/mips_init.pic.o: pngpriv.h -mips/filter_msa_intrinsics.o mips/filter_msa_intrinsics.pic.o: pngpriv.h -powerpc/powerpc_init.o powerpc/powerpc_init.pic.o: pngpriv.h -powerpc/filter_vsx_intrinsics.o powerpc/filter_vsx_intrinsics.pic.o: pngpriv.h - -pngtest.o: png.h pngconf.h pnglibconf.h diff --git a/scripts/makefile.std b/scripts/makefile.std index a3bb9441e..ed1105f9a 100644 --- a/scripts/makefile.std +++ b/scripts/makefile.std @@ -40,9 +40,11 @@ MV_F = mv -f RM_F = rm -f AWK = awk +NOHWOPT = -DPNG_ARM_NEON_OPT=0 -DPNG_MIPS_MSA_OPT=0 \ + -DPNG_POWERPC_VSX_OPT=0 -DPNG_INTEL_SSE_OPT=0 DFNFLAGS = # DFNFLAGS contains -D options to use in the libpng build DFA_EXTRA = # extra files that can be used to control configuration -CPPFLAGS = -I$(ZLIBINC) # -DPNG_DEBUG=5 +CPPFLAGS = -I$(ZLIBINC) $(NOHWOPT) # -DPNG_DEBUG=5 CFLAGS = -O # -g LDFLAGS = -L$(ZLIBLIB) # -g LIBS = -lz -lm -- cgit v1.2.1