|
From: <kin...@us...> - 2025-08-18 18:30:34
|
Revision: 7303
http://sourceforge.net/p/teem/code/7303
Author: kindlmann
Date: 2025-08-18 18:30:33 +0000 (Mon, 18 Aug 2025)
Log Message:
-----------
moved description of arch-specific stuff into comments in arch.mk
Modified Paths:
--------------
teem/trunk/src/make/README.txt
teem/trunk/src/make/arch.mk
Modified: teem/trunk/src/make/README.txt
===================================================================
--- teem/trunk/src/make/README.txt 2025-08-18 18:12:53 UTC (rev 7302)
+++ teem/trunk/src/make/README.txt 2025-08-18 18:30:33 UTC (rev 7303)
@@ -1,6 +1,6 @@
#
# Teem: Tools to process and visualize scientific data and images
-# Copyright (C) 2009--2023 University of Chicago
+# Copyright (C) 2009--2025 University of Chicago
# Copyright (C) 2005--2008 Gordon Kindlmann
# Copyright (C) 1998--2004 University of Utah
#
@@ -17,68 +17,21 @@
# along with this library; if not, see <https://www.gnu.org/licenses/>.
#
+(these reflect the simplification of non-CMake building done for Teem v2)
+
=========================
User-set environment variables which effect global things:
=========================
-TEEM_ARCH: the architecture you're compiling with and for
- >>> This is the only environment variable which MUST be set <<<
+TEEM_ROOT: the top-level "teem" directory, under which are the directories where object,
+ library, and include files will be installed. If not set, the top-level directory is
+ taken to be "../..", when inside the source directory for the individual libraries
-TEEM_ROOT: the top-level "teem" directory, under which are the
- directories where object, library, and include files will be
- installed. If not set, the top-level directory is taken to be
- "../..", when inside the source directory for the individual
- libraries
+TEEM_LINK_SHARED: if set to "true" then binaries, when linked, will be linked with shared
+ libraries, and not static libraries. If not set, we link against static libraries, in
+ order to produce stand-alone-ish binaries
-TEEM_LINK_SHARED: if set to "true" then binaries, when linked, will be
- linked with shared libraries, and not static libraries. If not set,
- we link against static libraries, in order to produce
- stand-alone-ish binaries
-
=========================
-The variables that can/must be set by the individual architecture
-.mk files. Those which must be set are marked by a (*):
-=========================
-
-TEEM_ENDIAN (*): some things in the air library are too annoying to do
- if the endianness is determined only at run-time, so just setting
- here simplifies things
- 1234: Little Endian (Intel and friends)
- 4321: Big Endian (everyone else)
-
-CC, LD, AR, RM, INSTALL, CHMOD (*): programs used during make
-
-SHEXT: the extension on the name of shared libraries (.so, .sl, .dll)
-
-SHARED_CFLAG, STATIC_CFLAG (*): flags which are passed to $(CC) when
- used to create binaries, so as to control whether shared or static
- libraries are linked against.
-
-BIN_CFLAGS: any flags to $(CC) which should be used for compiling
- binaries (in addition to the SHARED_CFLAG, STATIC_CFLAG flags above)
-
-OPT_CFLAG: how to control optimization (if desired)
-
-ARCH_CFLAG: any flags to $(CC) which are important for compiling
- particular to the target architecture
-
-CFLAGS: any flags to $(CC) for both .o and binary compiliation, in
- addition to $(OPT_CFLAG) $(ARCH_CFLAG)
-
-ARCH_LDFLAG: any architecture-specific flags to $(LD) which are
- important for making a shared library on the target architecture
-
-SHARED_LDFLAG: the flag to $(LD) which causes a shared library
- generated to be produced, not a static one
-
-LDFLAGS: any flags to $(LD) for making shared libraries, in addition
- to $(ARCH_LDFLAG) $(SHARED_LDFLAG)
-
-OTHER_CLEAN: other files that might have been created automatically
- as part of compilation, but which should be deleted if "make clean"
- is to be true to its word (e.g. "so_locations" on SGI)
-
-=========================
The variables that can be set by the individual library Makefile's
=========================
Modified: teem/trunk/src/make/arch.mk
===================================================================
--- teem/trunk/src/make/arch.mk 2025-08-18 18:12:53 UTC (rev 7302)
+++ teem/trunk/src/make/arch.mk 2025-08-18 18:30:33 UTC (rev 7303)
@@ -26,22 +26,38 @@
ARFLAGS = -static -o
RANLIB = ranlib
+# the extension on the name of shared libraries (.so, .sl, .dll)
+SHEXT = dylib
+
+CC = clang
LD = cc
+# CC = scan-build clang # to run static analyzer https://clang.llvm.org/docs/ClangStaticAnalyzer.html
-## for trying undefined behavior flagging -fsanitize=undefined
-OPT_CFLAG ?= -O3 -g
-# CC = scan-build clang # to run static analyzer https://clang.llvm.org/docs/ClangStaticAnalyzer.html
-CC = clang
+# $(CC) flag for creating executables when linking with static library
STATIC_CFLAG = -Wl,-prebind
+# $(CC) flag for creating executables when linking with shared library
SHARED_CFLAG =
+# any other $(CC) flag specific to creating executables (beyond two previous)
+BIN_CFLAGS =
+# other $(CC) flags for .c compilation (e.g. optimization and warnings)
+CFLAGS ?= -O3 -g -W -Wall -Wextra
SHARED_LDFLAG = -dynamic -dynamiclib -fno-common
SHARED_INSTALL_NAME = -install_name
+CHMOD = chmod
+
# more flags to try:
# -std=c90 -pedantic -Wno-long-long -Wno-overlength-strings -Wstrict-aliasing=2 -Wstrict-overflow=5
# -Weverything -Wno-poison-system-directories -Wno-padded -Wno-format-nonliteral -Wno-float-equal -Wno-reserved-id-macro
-ARCH_CFLAG = -W -Wall -Wextra
+## for trying undefined behavior flagging -fsanitize=undefined
+# $(CC) flags important for compiling particular to the target architecture
+ARCH_CFLAG =
+# $(LD) flag needed for making a shared library on the target architecture
ARCH_LDFLAG =
+# $(LD) flag that causes a shared library generated to be produced
+SHARED_LDFLAG =
+# $(LD) flags for making shared libraries (beyond two previous)
+LDFLAGS =
# Once in ~2003 when GLK was working on Windows/Cygwin, gnu make stopped working
# reliably because the file creation dates were not correctly tracking that
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|