/*
 * Make makefile for all libraries < Imakefile >
 *
 * Target libxbgi*.a and .so: Borland Graphics Interface for X11, PostScript
 *
 * Copyright (C) 1992-1994,1995 Taiji Yamada, Tokyo Denki University
 * Copyright (C) 1995-1999 Taiji Yamada, AIHARA Electrical Engineering Co.,Ltd.
 */
#include "../config.h"

#ifdef BuildConcatenatedLib

SUBDIRS = common $(CONCATENATED_DRIVERS) misc

#if (ProjectX < 6)
all::
	@case '${MFLAGS}' in *[i]*) set +e;; esac;
	DirFailPrefix@for i in DownDir $(SUBDIRS:%=Concat(DownDir,/%)); \
	do if [ -d $(DESTDIR)$$i ]; then \
		set +x; else (set -x; $(MKDIRHIER) $(DESTDIR)$$i); fi \
	done
#else
MakeDirectories(all,DownDir $(SUBDIRS:%=Concat(DownDir,/%)))
#endif

#include "common/define.h"
#include "x11/define.h"
#include "ps/define.h"
#include "misc/define.h"
INCLUDES = -I.
LINTLIBS = $(LINTXTOLL) $(LINTXLIB)
EXTRA_INCLUDES = -I./common -I./x11 -I./ps -I./misc
HEADERS = $(COMMON_HEADERS:%=common/%) $(X11_HEADERS:%=x11/%) $(PS_HEADERS:%=ps/%) $(MISC_HEADERS:%=misc/%)
SRCS = $(COMMON_SRCS:%=common/%) $(X11_SRCS:%=x11/%) $(PS_SRCS:%=ps/%) $(MISC_SRCS:%=misc/%)
OBJS = $(SRCS:.c=.o)

#ifdef RsArchitecture
REQUIREDLIBS = $(XTOOLLIB) $(XPMLIB) $(XLIB) -lm
#endif
#ifdef AlphaArchitecture
SO_REQLIBS = $(XTOOLLIB) $(XPMLIB) $(XLIB) -lm -lc
#endif

#ifndef DoSharedLib
#define DoSharedLib (HasSharedLibraries && \
		     !(defined(SGIArchitecture) && !SystemV4))
#endif
#ifndef DoNormalLib
#define DoNormalLib YES
#endif

#if (ProjectX < 5)
  STD_DEFINES = LibraryDefines
  CDEBUGFLAGS = LibraryCDebugFlags
#else
#define LibName xbgi
#define SoRev XBGILIBREV
#define SHLIBDIR XBGILIBDIR
#define USRLIBDIR XBGILIBDIR
#ifdef InstallHome
#define INCDIR LOCALINC
#endif
#include <Library.tmpl>
XCOMM CC=gcc
XCOMM PICFLAGS=-fpic
#endif

STD_DEFINES += -o $(<:.c=.o)

clean::
#if (ProjectX < 6)
	$(RM) $(OBJS)
#else
	RemoveFiles($(OBJS))
#endif

#if (ProjectX < 6)

#if (ProjectX < 5)

#if DoSharedLib
SharedLibraryObjectRule()
NormalSharedLibraryTarget(xbgi,$(XBGILIBREV),$(OBJS))
InstallSharedLibrary(xbgi,$(XBGILIBREV),$(XBGILIBDIR))
#else
NormalLibraryObjectRule()
#endif
NormalLibraryTarget(xbgi,$(OBJS))
InstallLibrary(xbgi,$(XBGILIBDIR))

#else /* (ProjectX < 5) */

LibraryObjectRule()

#if DoSharedLib
SharedLibraryTarget(xbgi,$(XBGILIBREV),$(OBJS),shared,..)
InstallSharedLibrary(xbgi,$(XBGILIBREV),$(XBGILIBDIR))
#endif
#if DoNormalLib
NormalLibraryTarget(xbgi,$(OBJS))
InstallLibrary(xbgi,$(XBGILIBDIR))
#endif

#endif /* (ProjectX < 5) */

InstallMultiple($(HEADERS),$(XBGIINCDIR))
BuildIncludes($(HEADERS),.,.)

#endif /* (ProjectX < 6) */

LintLibraryTarget(xbgi,$(SRCS))
InstallLintLibrary(xbgi,$(LINTLIBDIR))
DependTarget()
NormalLintTarget($(SRCS))

#endif /* BuildConcatenatedLib */

#ifdef BuildStandaloneLibs

SUBDIRS = common $(BUILD_STANDALONE_LIBS) misc

#define IHaveSubdirs

#define PassCDebugFlags
MakeSubdirs($(SUBDIRS))
DependSubdirs($(SUBDIRS))

#endif /* BuildStandaloneLibs */
