
##################################################################
#
#	Script for building Makefile.$(TARGET)$(COMPILER) and 
#	Makeinclude.$(TARGET)$(COMPILER). Default compiler options
#	are used, and overwritten based on known platform options.
#
##################################################################

#
# default C toolsuite variables
#

CC=cc
CFLAGS=
CPLUS=c++
PIC=-fPIC
CPP=/lib/cpp
CCOPTIM=-O2
CCSHARE=ld
SHELL=/bin/sh
AR=ar
RANLIB=ranlib

#
# Use default compiler?
#
COMPILER=

#
# Basic C tools
#

AR=ar
MAKE=make

#
# Willows Resource Compiler
#

RC=rc

#
# Basic ld tools
#

LD=ld
STRIP=strip

#
# User Definable values for Makeinclude.$TARGET
#
TWIN_SYSINC=-I/usr/X11/lib
TWIN_SYSLIB=-L/usr/X11/lib

EXTRALIB="-lX11 -lm -ldl"
SHARELIB=-ldl
CPU=X386
CPUTYPE=CPU
LDSHARED=-shared

if [ "$CPU" = "X386" ]
then
	WINEXE=win486
else
	WINEXE=win386
fi

############################################
#
# Start generating the files...
# 
# Makefile.$TARGET
#
############################################

#
# We will start with the defined platform 
# as default, user can override
#

TARGET=`uname`

############################################
#
# First thing is to setup the TARGET
#
############################################

echo "Please specify plaform" >/dev/tty
echo "default platform [$TARGET]" >/dev/tty
read ans
if [ "$ans" != "" ]
then
	TARGET=$ans
fi

exec >Makefile.$TARGET

############################################
#
# Put out a header
#
############################################

echo
echo "#############################################"
echo "#"
echo "# Makefile.$TARGET"
echo "#"
echo "# TWINDIR=$TWINDIR"
echo "# TARGET=$TARGET"
echo "#"
echo "#############################################"
echo

############################################
#
# We know how to setup Linux platforms
# but we don't know which CPU it is on.
#
# Here we overwrite default variables
# if we know the platform is one of
# Linux, Netware or OpenDos.
#
############################################

if [ "$TARGET" = "Linux" ]
then 
	CC=gcc
	CFLAGS=-fwritable-strings
	CPLUS=g++
	STRIP=touch
	CCSHARE=\$\(CC\)
fi

############################################
#
# Start prompting for platform specific info
#	CC
#	CFLAGS
#	C++
#	PICFLAG
#	CPP
#	CCOPTIM
#
############################################

echo "CC      = $CC  $CFLAGS \$(TWIN_CFLAGS)"
echo "CCOPTIM = $CCOPTIM"
echo "CCSHARE = $CCSHARE"
echo "C++     = $CPLUS $CFLAGS \$(TWIN_CFLAGS)"
echo "CPP     = $CPP"
echo "LD      = $LD"
echo "AR      = $AR"
echo "MAKE    = $MAKE"
echo "RC      = $RC"
echo "STRIP   = $STRIP"
echo "SHELL   = $SHELL"
echo "RANLIB  = $RANLIB"
echo
echo "PICFLAG = $PIC"
echo
echo "include \$(TWINDIR)/makeinclude/Makeinclude.\$(TARGET)"
echo

exec >/dev/tty
echo 
echo "Makefile.$TARGET$COMPILER has been created."

############################################
#
# Now generate Makeinclude.$TARGET$COMPILER
#
############################################

exec >Makeinclude.$TARGET$COMPILER

echo
echo "#############################################"
echo "#"
echo "# Makeinclude.$TARGET$COMPILER"
echo "#"
echo "# TWINDIR=$TWINDIR"
echo "# TARGET=$TARGET"
echo "#"
echo "#############################################"
echo

################################################
#
# Output variable elements
#
################################################

echo "TWIN_SYSINC = $TWIN_SYSINC"
echo "TWIN_SYSLIB = $TWIN_SYSLIB"
echo
echo "TWIN_WININC = -I\$(TWINDIR)/include"
echo "TWIN_WINLIB = -L\$(TWINDIR)/\$(TWINSRC)"
echo
echo "EXTRALIB = $EXTRALIB"
echo "SHARELIB = $SHARELIB"
echo
echo "WINEXE	 = $WINEXE"
echo


################################################
#
# Output fixed elements
#
################################################

echo
echo "TARGTHRSRC=DrvThreads_${CPU}.c"
echo "TARGTHROBJ=DrvThreads_${CPU}.o"
echo
echo "PLATFORM=-D${CPU} -DLINUX -DDRVTAB"
echo
echo "CPUTYPE  = $CPUTYPE"
echo
echo "WIN_VERSION_XX = \$(WIN_VERSION)so"
echo "WIN_VERSION_X  = \$(WIN_VERSION_XX:aoutso=a)"
echo "LIBTWIN        = libtwin.\$(WIN_VERSION_X)"
echo "LIBTWIN32      = libtwin32.\$(WIN_VERSION_X)"
echo
echo "TWIN_CFLAGS_XX= \$(WIN_VERSION)so"
echo "TWIN_CFLAGS_X = \$(TWIN_CFLAGS_XX:aoutso=)"
echo "TWIN_CFLAGS   = \$(TWIN_CFLAGS_X:so=\$(PICFLAG) -DELF)"
echo 
echo "LDSHARED     = $LDSHARED"
echo
echo "EXECSUFFIX   = $TARGET"
echo 
echo "# Special options to help with building Native DLLs"
echo "# First, the command and options for compiling individual .c modules."
echo 
echo "DLL_CC    = \$(CC)"
echo "DLL_CCOPT = \$(PICFLAG)"
echo 
echo "# Next, the command and options for building shared libraries."
echo 
echo "DLL_LD    = \$(CC)"
echo "DLL_LDOPT = -shared  -Wl,-Bsymbolic"
echo "DLL_LDLIB = -ltwin\$(TWIN_APISIZE) -ldll\$(TWIN_APISIZE) -lc"
echo 
echo "# Platform specific options needed for running rc."
echo
echo "DLL_RCOPT ="
echo
echo "# Finally, the extension we use for DLLs on this platform."
echo 
echo "DLL_EXT = so"
echo 

##########################################################
#
# Finish up
#
##########################################################

exec >/dev/tty
echo "Makeinclude.$TARGET$COMPILER has been created."
echo 
echo "Please verify values are correct."
echo
