#!/bin/ksh

# Usage: $ cd /pd/<yourbuildenv>
#        $ tools/buildfulcrum [<fulcrum_lib_path>]
#
# Copies the Fulcrum libraries, IPs, IP-Maps, and attribute files to the
# proper places beneath the directory named by fulcrum_lib_path.  If not
# specified, subdirectory lib of your build environment is used for 
# fulcrum_lib_path.
#
# For example:
#
#	$ cd /pd/vesta
# 	$ tools/buildfulcrum
#	$ export PDPRNPATH=/pd/vesta/lib/model

fulcrum_lib_path=$1

if [[ ${fulcrum_lib_path} = "" ]]
then 
   fulcrum_lib_path="lib"
fi

if [[ ! -d ${fulcrum_lib_path} ]]
then
   mkdir -p ${fulcrum_lib_path}
fi

if [[ ${fulcrum_lib_path} != "lib" ]]
then
   cp lib/libfcrm0.sl ${fulcrum_lib_path}/libfcrm0.sl
fi

if [[ -d ${fulcrum_lib_path}/ip ]]
then
   rm -f ${fulcrum_lib_path}/ip/*
else
   mkdir ${fulcrum_lib_path}/ip
fi

cp ip/HPGL2 ${fulcrum_lib_path}/ip/DesignJet
cp ip/PCL3 ${fulcrum_lib_path}/ip/PCL3
cp ip/PCL4 ${fulcrum_lib_path}/ip/PCL4
cp ip/PCL5 ${fulcrum_lib_path}/ip/PCL5

if [[  -d ${fulcrum_lib_path}/ipmap ]]
then
   rm -f ${fulcrum_lib_path}/ipmap/*
else
   mkdir ${fulcrum_lib_path}/ipmap
fi

cp ipmap/HPGL2 ${fulcrum_lib_path}/ipmap/DesignJet
cp ipmap/PCL3 ${fulcrum_lib_path}/ipmap/PCL3
cp ipmap/PCL4 ${fulcrum_lib_path}/ipmap/PCL4
cp ipmap/PCL5.DPI300 ${fulcrum_lib_path}/ipmap/PCL5.DPI300
cp ipmap/PCL5.DPI600 ${fulcrum_lib_path}/ipmap/PCL5.DPI600

if [[ -d ${fulcrum_lib_path}/model ]]
then
   rm -rf ${fulcrum_lib_path}/model/*
else
   mkdir ${fulcrum_lib_path}/model
fi

create_model()
{
   if [[ ! -d ${fulcrum_lib_path}/model/$1 ]]
   then
      mkdir ${fulcrum_lib_path}/model/$1
   fi

   cp model/$1.att ${fulcrum_lib_path}/model/$1/attribute
   ln -s ../../libfcrm0.sl ${fulcrum_lib_path}/model/$1/driver
   ln -s ../../ip/$2 ${fulcrum_lib_path}/model/$1/ip
   ln -s ../../ipmap/$3 ${fulcrum_lib_path}/model/$1/ipmap
}

############################
## ColorLaserJet printers
############################

#	     [printer model]	[IP]		[IP-Map]

create_model ColorLaserJet 	PCL5		PCL5.DPI300
create_model ColorLaserJet5	PCL5		PCL5.DPI300
create_model ColorLaserJt5M	PCL5		PCL5.DPI300

############################
## DesignJet plotters
############################

#	     [printer model]	[IP]		[IP-Map]

create_model DesignJet650	DesignJet	DesignJet
create_model DesignJet650C	DesignJet	DesignJet
create_model DesignJt650CPS	DesignJet	DesignJet
create_model DesignJet750C	DesignJet	DesignJet
create_model DesignJet755CM	DesignJet	DesignJet

############################
## DeskJet printers
############################

#	     [printer model]	[IP]		[IP-Map]

create_model DeskJet660C	PCL3		PCL3
create_model DeskJet850C	PCL3		PCL3
create_model DeskJet855C	PCL3		PCL3
create_model DeskJet1200	PCL5		PCL5.DPI600
create_model DeskJet1200C	PCL5		PCL5.DPI600
create_model DeskJet1200CPS	PCL5		PCL5.DPI600
create_model DeskJet1600	PCL5		PCL5.DPI600
create_model DeskJet1600C	PCL5		PCL5.DPI600
create_model DeskJet1600CM	PCL5		PCL5.DPI600

############################
## LaserJet3 printers
############################

#	     [printer model]	[IP]		[IP-Map]

create_model LaserJet3		PCL4		PCL4
create_model LaserJet3D		PCL4		PCL4
create_model LaserJet3P		PCL4		PCL4
create_model LaserJet3Si	PCL5		PCL5.DPI300

############################
## LaserJet4 printers
############################

#	     [printer model]	[IP]		[IP-Map]

create_model LaserJet4		PCL5		PCL5.DPI600
create_model LaserJet4M		PCL5		PCL5.DPI600
create_model LaserJet4L		PCL5		PCL5.DPI300
create_model LaserJet4ML	PCL5		PCL5.DPI300
create_model LaserJet4P		PCL5		PCL5.DPI600
create_model LaserJet4MP	PCL5		PCL5.DPI600
create_model LaserJet4V		PCL5		PCL5.DPI600
create_model LaserJet4MV	PCL5		PCL5.DPI600
create_model LaserJet4Plus	PCL5		PCL5.DPI600
create_model LaserJet4MPlus	PCL5		PCL5.DPI600
create_model LaserJet4Si	PCL5		PCL5.DPI600
create_model LaserJet4SiMX	PCL5		PCL5.DPI600

############################
## LaserJet5 printers
############################

#	     [printer model]	[IP]		[IP-Map]

create_model LaserJet5		PCL5		PCL5.DPI600
create_model LaserJet5L		PCL5		PCL5.DPI600
create_model LaserJet5P		PCL5		PCL5.DPI600
create_model LaserJet5MP	PCL5		PCL5.DPI600
create_model LaserJet5Si	PCL5		PCL5.DPI600
create_model LaserJet5SiMX	PCL5		PCL5.DPI600

# Create the symlink for the lp-spool-* default printer type.  Currently,
# we treat the printer as a LaserJet5Si.

ln -s ./LaserJet5Si ${fulcrum_lib_path}/model/lp-default
