rexx-things/modules/api/c++/external/Makefile.unix
2025-03-12 20:50:48 +00:00

71 lines
3.7 KiB
Makefile

#/*----------------------------------------------------------------------------*/
#/* */
#/* Copyright (c) 2021 Rexx Language Association. All rights reserved. */
#/* */
#/* This program and the accompanying materials are made available under */
#/* the terms of the Common Public License v1.0 which accompanies this */
#/* distribution. A copy is also available at the following address: */
#/* https://www.oorexx.org/license.html */
#/* */
#/* Redistribution and use in source and binary forms, with or */
#/* without modification, are permitted provided that the following */
#/* conditions are met: */
#/* */
#/* Redistributions of source code must retain the above copyright */
#/* notice, this list of conditions and the following disclaimer. */
#/* Redistributions in binary form must reproduce the above copyright */
#/* notice, this list of conditions and the following disclaimer in */
#/* the documentation and/or other materials provided with the distribution. */
#/* */
#/* Neither the name of Rexx Language Association nor the names */
#/* of its contributors may be used to endorse or promote products */
#/* derived from this software without specific prior written permission. */
#/* */
#/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS */
#/* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT */
#/* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS */
#/* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT */
#/* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */
#/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED */
#/* TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, */
#/* OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY */
#/* OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING */
#/* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS */
#/* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
#/* */
#/*----------------------------------------------------------------------------*/
# A make file that should work on most Unix-like platforms that have gcc
OOREXX_CFLAGS = -fPIC
OOREXX_LFLAGS = -export-dynamic -shared -nostartfiles
# determine extension, default to Linux style
EXT = so
UNAME := $(shell uname -s)
ifeq ($(UNAME),Darwin) # if Apple adjust accordingly
EXT = dylib
endif
# What we want to build.
all: external_routines external_methods external_methods_routines
external_routines:
@echo "building [$@] ..."
gcc -c $@.cpp $(OOREXX_CFLAGS) -o $@.o
gcc $@.o ${OOREXX_LFLAGS} -o lib$@.$(EXT)
external_methods:
@echo "building [$@] ..."
gcc -c $@.cpp $(OOREXX_CFLAGS) -o $@.o
gcc $@.o ${OOREXX_LFLAGS} -o lib$@.$(EXT)
external_methods_routines:
@echo "building [$@] ..."
gcc -c $@.cpp $(OOREXX_CFLAGS) -o $@.o
gcc $@.o ${OOREXX_LFLAGS} -o lib$@.$(EXT)
clean:
rm -f *.so *.o lib*.$(EXT)