nulib2/nulib2/Makefile.in
Andy McFadden 132a8338b9 Fix Mac OS X behavior
Some fixes to the Mac OS X build:

- Replace the Carbon calls that were used to set the creator
and file type with xattr calls.  The Carbon stuff still worked
but caused deprecation warnings.  Stop linking against Carbon.

- Correct the way resource forks are accessed (from "/rsrc" to
"/..namedfork/rsrc").  The native resource fork support is
incomplete and doesn't work quite right, so it's now disabled.
(Which means the corrections to the file name don't actually do
anything, but you can at least play with it.)

- Correct the file/aux type conversion, which appeared to do
useful things but actually didn't in some circumstances (e.g. when
adding files, the code for acquiring the file types needs to be in
NuLib2, not NufxLib).

- Set creator and file type to 'pdos' values when extracting from
a Binary ][ archive.

Also, drop some old purify/quantify stuff.
2015-01-03 15:59:37 -08:00

143 lines
4.4 KiB
Makefile

#
# Nulib2
# Copyright (C) 2000-2007 by Andy McFadden, All Rights Reserved.
# This is free software; you can redistribute it and/or modify it under the
# terms of the BSD License, see the file COPYING.
#
# Makefile for nulib2 stuff (should work with non-GNU make).
#
# You can use:
# make (builds nulib2 and checks for libnufx.a)
# make shared (builds nulib2 and checks for libnufx.so)
#
# This will try to link against the library in $(NUFXSRCDIR) first, then
# look for a copy in the standard system install location (usually
# /usr/local/lib).
#
# Note that this really wants to find $(NUFXLIB) for dependency checking.
# If you're building against a copy in /usr/local/lib, just put a '#' in
# front of the "NUFXLIB" line below.
#
# set this to where the NuFX library and ".h" file live
NUFXSRCDIR = ../nufxlib
NUFXLIB = $(NUFXSRCDIR)/$(LIB_PRODUCT)
# NuLib2 install location. The man page will go into $(mandir)/man1.
prefix = @prefix@
exec_prefix = @exec_prefix@
includedir = @includedir@
libdir = @libdir@
bindir = @bindir@
mandir = @mandir@
srcdir = @srcdir@
SHELL = @SHELL@
INSTALL = @INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_DATA = @INSTALL_DATA@
CC = @CC@
#OPT = @CFLAGS@ -DNDEBUG
OPT = @CFLAGS@
#OPT = @CFLAGS@ -DDEBUG_MSGS
#OPT = @CFLAGS@ -DDEBUG_VERBOSE
GCC_FLAGS = -Wall -Wwrite-strings -Wstrict-prototypes -Wpointer-arith -Wshadow
CFLAGS = @BUILD_FLAGS@ -I. -I$(NUFXSRCDIR) -I$(includedir) @DEFS@
SRCS = Add.c ArcUtils.c Binary2.c Delete.c Extract.c Filename.c \
List.c Main.c MiscStuff.c MiscUtils.c State.c SysUtils.c
OBJS = Add.o ArcUtils.o Binary2.o Delete.o Extract.o Filename.o \
List.o Main.o MiscStuff.o MiscUtils.o State.o SysUtils.o
PRODUCT = nulib2
# this is used for dependency checking
LIB_PRODUCT = libnufx.a
#
# Build stuff
#
all: $(PRODUCT)
@true
install: $(PRODUCT)
$(srcdir)/mkinstalldirs $(bindir)
$(INSTALL_PROGRAM) $(PRODUCT) $(bindir)
$(srcdir)/mkinstalldirs $(mandir)/man1
$(INSTALL_DATA) nulib2.1 $(mandir)/man1/
install-shared:
LIB_PRODUCT="libnufx.so" $(MAKE) -e install
# Link against the shared version of libnufx. This is only needed so
# the dependency checking does the right thing during development. Note
# we probably don't need to link against all of LIBS, especially -lz -lbz2,
# but there's little harm in doing so.
shared::
LIB_PRODUCT="libnufx.so" $(MAKE) -e
$(PRODUCT): $(OBJS) $(NUFXLIB)
$(CC) -o $@ $(OBJS) -L$(NUFXSRCDIR) -L$(libdir) -lnufx @LIBS@
clean:
-rm -f *.o core
-rm -f $(PRODUCT)
tags::
ctags -R --totals * $(NUFXSRCDIR)/*
@#ctags *.[ch] $(NUFXSRCDIR)/*.[ch]
distclean: clean
-rm -f Makefile Makefile.bak
-rm -f config.log config.cache config.status config.h
-rm -f tags
-rm -f nulib2-@host_alias@ nulib2-@host_alias@.tar.Z
# Copy all of the binaries into a directory and tar them up for distribution.
# All binaries except "nulib2" are stripped to reduce their size.
distbin: $(PRODUCT)
@ \
builddir="nulib2-@host_alias@"; \
samples=$(NUFXSRCDIR)/samples; \
echo "building $$builddir.tar.Z"; \
rm -rf $$builddir; \
mkdir -p $$builddir; \
cp -p $(PRODUCT) nulib2.1 README.txt COPYING $$samples/README-S.txt \
$$samples/exerciser $$samples/imgconv $$samples/launder \
$$samples/test-basic $$samples/test-extract \
$$samples/test-simple \
$$builddir; \
strip $$builddir/$(PRODUCT) \
$$builddir/exerciser $$builddir/imgconv $$builddir/launder \
$$builddir/test-basic $$builddir/test-extract \
$$builddir/test-simple; \
tar -cf - $$builddir | compress > $$builddir.tar.Z; \
rm -rf $$builddir
# Make a tarfile with a backup of the essential files. We include "Makefile"
# so that we can do a "make distclean" during packaging.
baktar:
@tar cvf nulib2.tar *.txt COPYING INSTALL nulib2.1 configure *.in Makefile \
Makefile.msc install-sh config.guess config.sub mkinstalldirs *.[ch]
@gzip -9 nulib2.tar
@mv -i nulib2.tar.gz /home/fadden/BAK/
# dependency info
COMMON_HDRS = NuLib2.h SysDefs.h State.h MiscStuff.h config.h \
$(NUFXSRCDIR)/NufxLib.h
Add.o: Add.c $(COMMON_HDRS)
ArcUtils.o: ArcUtils.c $(COMMON_HDRS)
Binary2.o: Binary2.c $(COMMON_HDRS)
Delete.o: Delete.c $(COMMON_HDRS)
Extract.o: Extract.c $(COMMON_HDRS)
Filename.o: Filename.c $(COMMON_HDRS)
List.o: List.c $(COMMON_HDRS)
Main.o: Main.c $(COMMON_HDRS)
MiscStuff.o: MiscStuff.c $(COMMON_HDRS)
MiscUtils.o: MiscUtils.c $(COMMON_HDRS)
State.o: State.c $(COMMON_HDRS)
SysUtils.o: SysUtils.c $(COMMON_HDRS)