# Makefile.defaults
#
# by Mike Ferris
# Part of MOKit
# Copyright 1993, all rights reserved
#
# Used in the MiscKit by permission.
#
# This is based on Next's standard library make architecture

############################ Product names ############################

# names of the various end results of making
OPT_LIB = lib$(NAME).a
DEBUG_LIB = lib$(NAME)_g.a
PROFILE_LIB = lib$(NAME)_p.a

# the default one to use
PRODUCT = $(OPT_LIB)

######################## Object file locations ########################

# architectures to compile
# note: we really should use NeXT's obj directory naming scheme
#  so that dependencies are handled properly!  We assume here that
#  users won't be switching between archs...
ARCHITECTURES = `$(ARCHIFY) $(TARGET_ARCHS)`

# names of various object file directories
OBJROOT = .
SYMROOT = .

OPT_OBJ = obj
DEBUG_OBJ = debug_obj
PROFILE_OBJ = profile_obj

OFILE_DIR = $(OBJROOT)/$(OPT_OBJ)
SYM_DIR = $(SYMROOT)/sym

VPATH = $(OFILE_DIR):$(SYM_DIR):$(OBJROOT):$(SYMROOT)$(OTHER_VPATH)

############################ File groups ############################

# all the source code
SRCS = $(PSWFILES) $(PSWMFILES) $(MFILES) $(CFILES) $(SFILES) \
			$(LFILES) $(LMFILES) $(YFILES) $(YMFILES) $(HFILES) \
			$(PSFILES) $(OTHER_SRCS)

# all nonderived files needed to build the project
INSTALL_FILES = $(SRCS) Makefile Makefile.depends

# headers
HFILES = $(PRIVATE_INCFILES) $(PUBLIC_INCFILES)

# all the object files
OFILES = $(PSWFILES:.psw=.o) $(PSWMFILES:.pswm=.o) $(MFILES:.m=.o) \
			$(CFILES:.c=.o) $(SFILES:.s=.o) \
			$(LFILES:.l=.o) $(LMFILES:.lm=.o) $(YFILES:.y=.o) \
			$(YMFILES:.ym=.o) $(OTHER_SRCS_OFILES)

# source files derived during the build
DERIVED_SRC = $(PSWFILES:.psw=.c) $(PSWFILES:.psw=.h) $(PSWMFILES:.pswm=.m) \
			$(PSWMFILES:.pswm=.h) $(LFILES:.l=.c) $(LMFILES:.lm=.m) \
			$(YFILES:.y=.c) $(YMFILES:.ym=.m)

# files to be removed on make clean
COMMON_GARBAGE = $(BY_PRODUCTS) TAGS tags $(DERIVED_SRC) Makefile.depends \
			.depend_done core .make.out* *~

# more specific garbage
SPECIFIC_GARBAGE = lib$(NAME)*.a

# directories to remove on make clean
DIRECTORY_GARBAGE = $(OPT_OBJ) $(DEBUG_OBJ) $(PROFILE_OBJ) $(SYM_DIR)

# dependency files generated in build process
DFILES = $(MFILES:.m=.d) $(CFILES:.c=.d) $(PSWFILES:.psw=.d) \
			$(PSWMFILES:.pswm=.d) $(SFILES:.s=.d) \
			$(LFILES:.l=.d) $(LMFILES:.lm=.d) $(YFILES:.y=.d) \
			$(YMFILES:.ym=.d)
