From: Mick M. <mic...@co...> - 2003-12-02 03:25:35
|
G'Day Guys, Thanks for your answers so far. I'm just sneaking in this email as I get ready to put the kids to bed. First off, I'm compiling a big circuit simulation program - written in C and uses TCL etc. for its graphics. It was originally compiled for Sun machines, and the makefiles recently tweaked for Linux (somewhat painful) and Windows (a real pain, buggy, and they're sorry they did this and now have to support it). I'm doing this port without the help (and knowledge) of our cad group who steadfastly reckon the Mac is just a toy and unworthy of their time, and will only end up being yet one more platform to support. My take on things is that this is the perfect platform, because it's unix and has all those other programs (M$ Office, Photoshop etc.) running on the one box. Many of the engineers have both a sun (to run the cad tools) AND a cheap PC (to deconvolve all the marketing email PC attachments etc.). There are two files involved in building this - makefile and make.header. As requested, here they are (as they stand after a couple of tweaks): ******************* makefile ********************** # 21-feb-2000, whc: changed COMPONENTS: removed ptfilt and changed usl to usl_t include make.header # omitted: genmap COMPONENTS = usl_t mt setpaths math++ util mp s4 nbc emf fly server client btalk spef \ expr comm vl2cc am2cc vlparse tclpatch adice5 radar5 adi_wishx tc a5genlib rf_lib \ scripts scr_test rf_test radar5_test tc_test adice5_test all : host_check build install host_check : @if ( test "`hostname`" != ${EXPECTED_HOST} -o ${USER} != ${EXPECTED_USER} ) then \ ( \ echo "*ERROR*, this job must be run as ${EXPECTED_USER} on ${EXPECTED_HOST} " ; \ echo " hostname:" `hostname` ; \ echo " user:" ${USER} ; \ echo " date:" `date` ; \ echo " pwd:" `pwd` ; \ exit 1 \ ) \ fi build : @echo "" @echo "################ Build Pass, Start:" `hostname` `date` @echo "" @-for c in ${COMPONENTS} ; do \ echo "" ; \ echo "################ make all:" $$c : `hostname` `date` ; \ ( cd $$c; make all ) ; \ ( cd $$c; make install ) ; \ done @echo "" @echo "################ Build Pass, Finish:" `hostname` `date` install : # @echo "" # @echo "################ Install Pass, Start:" `hostname` `date` # @echo "" # # @-for c in ${COMPONENTS} ; do \ # echo "" ; \ # echo "################ make install:" $$c : `hostname` `date` ; \ # ( cd $$c; make install ) ; \ # done # # @echo "" # @echo "################ Install Pass, Finish:" `hostname` `date` info : @echo "################ sccs info:" `pwd` @sccs info @-for c in ${COMPONENTS} ; do \ echo "################ sccs info:" $$c; \ ( cd $$c; sccs info ) ; \ done status : @-for c in ${COMPONENTS} ; do \ echo "################ sccs info:" $$c; \ ( cd $$c; make status ) ; \ done all_items : @-for c in ${COMPONENTS} ; do \ echo "################ all_items:" $$c; \ ( cd $$c; make all_items ) ; \ ( cd $$c; make install ) ; \ done source : ( cd bin_dev; ./mksrc; make tools ) @-for c in ${COMPONENTS} ; do \ echo "################ all_items:" $$c; \ ( cd $$c; ../bin_dev/mksrc ) ; \ done clean : @-for c in ${COMPONENTS} ; do \ echo "################ clean:" $$c; \ ( cd $$c; make clean ) ; \ done ao_clean_all : @-for c in ${COMPONENTS} ; do \ echo "################ ao_clean:" $$c; \ ( cd $$c; make ao_clean ) ; \ done pure_clean : -/bin/rm -fr /net/solmaster/disk3/puresoft/purify-4.5.1-solaris2/cache/* -/bin/rm -fr /net/solmaster/disk3/puresoft/purify-4.2-solaris2/cache/* -/bin/rm -fr /net/solmaster/disk3/puresoft/quantify-4.5.1-solaris2/cache/* -/bin/rm -fr /net/solmaster/disk3/puresoft/quantify-4.2-solaris2/cache/* -/bin/rm -fr /net/solmaster/disk3/puresoft/purecov-4.5.1-solaris2/cache/* -/bin/rm -fr /net/solmaster/disk3/puresoft/purecov-4.2-solaris2/cache/* @-for c in ${COMPONENTS} ; do \ echo "################ sccs info:" $$c; \ ( cd $$c; make pure_clean ) ; \ done misc : @-for c in ${COMPONENTS} ; do \ echo "################ clean:" $$c; \ ( cd $$c; sccs diffs *.h *.cc *.tcl ) ; \ done depend : @-for c in ${COMPONENTS} ; do \ echo "" ; \ echo "################ make depend:" $$c; \ ( cd $$c; make depend ) ; \ done tell : @echo "################ sccs tell -u:" `pwd` @sccs tell -u @-for c in ${COMPONENTS} ; do \ echo "################ sccs tell -u:" $$c; \ ( cd $$c; sccs tell -u ) ; \ done diffs : @echo "################ sccs diffs:" `pwd` @sccs diffs `sccs tell -u` @-for c in ${COMPONENTS} ; do \ echo "################ sccs diffs:" $$c; \ ( cd $$c; sccs diffs `sccs tell -u` ) ; \ done diff_all : @echo "################ sccs diffs:" `pwd` @-for c in ${COMPONENTS} ; do \ echo "################ sccs diffs:" $$c; \ ( cd $$c; sccs diffs SCCS ) ; \ done save : @-for c in ${COMPONENTS} ; do \ echo "################ save:" $$c; \ ( cd $$c; make save ) ; \ done # Run as owner of destination # Run from ~adice/sun4os5.SC DEST = ~mmueck/ADI_Cadtools/linux cold : @-for c in scripts ; do \ echo "################ tar:" $$c $(DEST); \ ( cd $$c; mkdir -p $(DEST)/$$c; tar cf - . | (cd $(DEST)/$$c; tar xfBp -) ) ; \ done sync : echo "###########################################" -diff makefile ${ADICEHOME}/sun4.cl echo "###########################################" -diff makefile ${ADICEHOME}/sun4os5.SC echo "###########################################" -diff makefile ${ADICEHOME}/i86os5 echo "###########################################" -diff make.laws ${ADICEHOME}/sun4.cl echo "###########################################" -diff make.laws ${ADICEHOME}/sun4os5.SC echo "###########################################" -diff make.laws ${ADICEHOME}/i86os5 dummy : @echo "Made dummy target" dummy60 : @echo "Sleep for 60 seconds" sleep 60 linux_tools_backup : @-mkdir -p ~mmueck/ADI_Cadtools/linux_tools_backup -chmod +w ~mmueck/ADI_Cadtools/linux_tools_backup/* -cp makefile ~mmueck/ADI_Cadtools/linux_tools_backup -cp make.header ~mmueck/ADI_Cadtools/linux_tools_backup -cp make.laws ~mmueck/ADI_Cadtools/linux_tools_backup -cp ~mmueck/ADI_Cadtools/linux/* ~mmueck/ADI_Cadtools/linux_tools_backup -cp ~mmueck/ADI_Cadtools/linux/ucb ~mmueck/ADI_Cadtools/linux_tools_backup -cp ~mmueck/ADI_Cadtools/linux/bin_dev ~mmueck/ADI_Cadtools/linux_tools_backup @-for c in ${COMPONENTS} ; do \ echo "################ linux_tools_backup:" $$c; \ mkdir -p ~mmueck/ADI_Cadtools/linux_tools_backup/$$c; \ chmod +w ~mmueck/ADI_Cadtools/linux_tools_backup/$$c/*; \ (cd $$c; cp makefile ~mmueck/ADI_Cadtools/linux_tools_backup/$$c); \ (cd $$c; cp hello ~mmueck/ADI_Cadtools/linux_tools_backup/$$c); \ done ******************* make.header ********************** # # Kept OPT separate so we can make special rules for some source which uses -g instead #OPT = -g OPT = -O PIC_OPT = -fPIC LIB=.a LINK = g++ CC = g++ PLATFORM = lintel EXE_SUFFIX = lintel EXPECTED_HOST = Mick-Muecks-Computer.local EXPECTED_USER = mmueck MPDIR = ../mp S4DIR = ../s4 MTDIR = ../mt USLDIR = ../usl_t EMFDIR = ../emf FLYDIR = ../fly NBCDIR = ../nbc UTILDIR = ../util SPEFDIR = ../spef EXPRDIR = ../expr COMMDIR = ../comm VL2CCDIR = ../vl2cc VLPARSEDIR = ../vlparse SETPATHSDIR = ../setpaths LAPACKDIR = ../clapack ZGLDIR = ../zgl DSCLIENTDIR = ../client DSSERVERDIR = ../server ZTCBINDIR = ../tcbin ZBINDIR = ../zbin BTALKDIR = ../btalk MATHXXDIR = ../math++ TCLPATCHDIR = ../tclpatch BINDEV = ../bin_dev RADAR5DIR = ../radar5 ADICE5DIR = ../adice5 TCDIR = ../tc ADIWISHXDIR = ../adi_wishx ADICE4_INSTALL_PLATFORM = sun4os5.SC UTIL_INSTALL_PLATFORM = sun4os5.SC ADI_WISHX_INSTALL_PLATFORM = sun4os5.SC RADAR5_INSTALL_PLATFORM = sun4os5.SC ADICE5_INSTALL_PLATFORM = sun4os5.SC TC_INSTALL_PLATFORM = sun4os5.SC PTFILT = ../ptfilt/ptfilt PURELIB = ../purify XINCL = /usr/openwin/include XLIB = /usr/openwin/lib MOTIFINCL = /usr/dt/include MRM_LIB = -L/usr/dt/lib -lMrm XM_LIB = -L/usr/dt/lib -lXm XT_LIB = -L/usr/openwin/lib -lXt EXE_MODES = 755 ADI_LDFLAGS = ${LDFLAGS} DEP_DEPS = always MKDEP_ARGS = ARCHIVE_COMMAND = ar rl $@ $? DLOPEN_LIB = -ldl # SOCKET_LIBS = -lsocket -lnsl SOCKET_LIBS = # COMPLEX_LIB = -Bstatic -lcomplex -Bdynamic COMPLEX_LIB = # MISC_LIBS = ${COMPLEX_LIB} ${PURELIB}/pure_stubs.a -lsunmath -lm -lC -lc MISC_LIBS = -rdynamic ${COMPLEX_LIB} ${SETPATHSDIR}/libsetpaths.a ${PURELIB}/pure_stubs.a -lpthread -lm -lc PURIFY_MISC_LIBS = ${PURELIB}/pure_stubs.a -lsunmath -Bstatic -lm -Bdynamic -lC -lc # TOOL_TALK_LIBS = -L/usr/openwin/lib -ltt TOOL_TALK_LIBS = X11_LIBS = -L/usr/X11R6/lib -lXmu -lX11 # Changed TCL_HOME for what I think it should be on the Mac TCL_HOME = /Library/Tcl TCL_VERSION = 844 TCL8_INCLS = \ -I${TCL_HOME}/tcl8.4/generic \ -I${TCL_HOME}/tk8.4/generic \ -I${TCL_HOME}/tk8.4/unix \ -I${TCL_HOME}/tclX8.4/tcl/generic \ -I${TCL_HOME}/Tix8.0/generic TCL8_LIBS = \ ${TCL_HOME}/tclX8.4/tcl/unix/libtclx8.3.a \ ${TCL_HOME}/tclX8.4/tk/unix/libtkx8.3.a \ ${TCL_HOME}/Tktable8.4/libTktable2.8.a \ ${TCL_HOME}/tk8.4/unix/libtk8.4.a \ ${TCL_HOME}/tcl8.4/unix/libtcl8.4.a \ ${TCL_HOME}/Tix8.4/unix/tk8.4/libtix4.1.8.0.a TCL_LIBS = ${TCLPATCHDIR}/libtclpatch.a ${TCL8_LIBS} TCL_INCLS = ${TCL8_INCLS} # Edited the following LAPACK lines - Mick Mueck LAPACKLIBS = -framework vecLib OLAPACKLIBS = ${LAPACKDIR}/lapack.a \ ${LAPACKDIR}/blas.a \ ${LAPACKDIR}/libF77.a \ ${LAPACKDIR}/libI77.a UIL_HOME = ${XSTUFFHOME}/motif_sun4/clients/uil ZAMC = ../ucb/zamc GET = echo # Behavioral Model Header Files BMHF = ammpp.h bitstr.h ciac.h geneltexport.h log_results.h logbit.h logmat.h modeltime.h modver.h \ parmint.h ssexport.h streams.h tmpglob.h umdouble.h umexport.h umfstream.h umi.h \ umlogic.h umscalar.h umstring.h umtime.h umverilog.h a5api.h RemoteBMHF = $(BMHF:%.h=${ADICE5DIR}/%.h) # NOTE: flags do not include OPT FLAGS = -I. -DNDEBUG -DLINTEL -fwritable-strings -ffloat-store -fno-for-scope -fcheck-new -I${PURELIB} -I../compat CFLAGS_0 = ${FLAGS} CCFLAGS_0 = ${FLAGS} -I${SETPATHSDIR} ******************************** the end ****************************** On Dec 1, 2003, at 10:18 AM, Benjamin Riefenstahl wrote: > Hi Jonathan, > > > Jonathan Guyer <jg...@hi...> writes: >> Oh, that's right. I don't have my source partition mounted and was >> thinking those were more esoteric headers, but of course not. Why on >> earth are they calling source directories "INCLS"? Very poor form. > > They are probably using the internal headers. Or they just wanted to > do it the same for all packages. We don't know. > > I wrote: >>> Most of these are whereever you have put them, so I don't quite >>> understand the question. >> >> Mick did the BI install, so he didn't put them anywhere and all he's >> got are .dylibs. > > Yeah, that occurred to me after I wrote this. Anyway, he will need to > install the sources to get them, no way around that. > > Except if the code actually does only need public headers and the > references to the source are bogus. Even the BI distro should have > the public headers (?), but I have never used it on Mac OS X, so I > can't say where exactly. Should be easy enough to find though, just > search the usual suspects. > > > benny > |