Closed Bug 326 Opened 27 years ago Closed 26 years ago

Suggestions for Makefile on DUnix

Categories

(SeaMonkey :: Build Config, enhancement, P3)

DEC
All
enhancement

Tracking

(Not tracked)

CLOSED INVALID

People

(Reporter: berkley, Assigned: briano)

Details

Created by Berkley Shands (berkley@cs.wustl.edu) on Wednesday, May 6, 1998 12:05:08 PM PDT Additional Details : A suggestion for later model DEC alpha (OSF1) Dec Unix platforms; Don't use GCC/G++/GNU - it leads to code problems since that compiler is not very picky about ANSI C++ standards on callings and arguments. I have made a few ports to this 64-bit platform, here are a few useful things I found /* +========================================================================+ */ /* | Playground, Copyright 1996 Washington University All Rights Reserved. | */ /* |------------------------------------------------------------------------| */ /* | FILE: CompilerDefs.hh */ /* |------------------------------------------------------------------------| */ /* | Who | Date | Implementation Modification */ /* |------------------------------------------------------------------------| */ /* | jyp | Feb 01, 97 | Initial Code Generation */ /* +========================================================================+ */ #ifndef CompilerDefs_h_ #define CompilerDefs_h_ /* */ /* list of weird definitions and other tricks needed to work around */ /* various compilers' idiosyncrasies */ /* */ /* The following pre-defined symbols are provided by the compiler */ /* _MSC_VER - Visual C++ version ID 4.2E */ /* __BCPLUSPLUS__ - Borland C++ V5.0 */ /* __SUNPRO_CC - Sun Sparcworks Pro V3.1 */ /* __DECCXX - Digital CXX V5.6 */ /* __DECCXX_VER = 60030001 first F/T of V6.0 */ /* __DECCXX_VER = 50660098 -oldcxx (V5.6-098) */ /* __UNIX All flavors of real unix */ /* WIN32 Both flavors of Intel/MS NT4.0 */ /* __GNUG__ GNU G++ */ /* __NetBSD__ NetBSD unix */ /* __i386 used with NetBSD for Intel platforms */ /* __mips64 SGI 7.x Compilers (not pre-defined) */ /* __mips SGI systems (GNU) */ /* __linux__ Linux running on an Intel Platform */ /* Microsft C++ doesn't like throw() in template declarations! */ /* gcc is still not too good at dealing with exception signatures */ #if defined (_MSC_VER) || defined (__GNUG__) || defined (__BCPLUSPLUS__) # define NOTHROW #else # define NOTHROW throw() #endif /* dealing with naming conventions for include files */ /* */ #if defined (__cplusplus) #include <iostream.h> #else #include <stdio.h> #endif /* after iostream, all hell breaks loose with g++ otherwise! */ #include "bool.h" /* dealing with various representations of 64 bit longs */ /* and 32 bit integers to make sure all use the same amount of storage */ #if defined(__i386) || defined(__i486) || defined(__i586) || defined(__i686) # define IS_X86_BOX 1 #endif #if defined (__alpha) || defined (__LP64) || defined (__mips64) # define PGLONG64 long # define PGINT32 int # define PGUINT32 unsigned int #elif defined (__sparc) || defined (__mips) # define PGLONG64 long long # define PGINT32 long # define PGUINT32 unsigned long #elif defined(IS_X86_BOX) && (defined (__NetBSD__) || defined(__linux__)) # define PGLONG64 long long # define PGINT32 long # define PGUINT32 unsigned long /* defined in veneer/MissingTmpl.cxx */ ostream & operator << (ostream &, const PGLONG64 &); #elif defined (_M_IX86) # if defined (_MSC_VER) # define PGLONG64 __int64 # else # define PGLONG64 long # endif # define PGINT32 long # define PGUINT32 unsigned long /* defined in veneer/MissingTmpl.cxx */ ostream & operator << (ostream &, const PGLONG64 &); #else # error "CompilerDefs.hh; unknown compilation machine" #endif /* for gcc on Ix86 boxes, the << operator can't get the cast from */ /* PGint to PGINT64 right, so we must explicitly cast it. */ #if defined(__NetBSD__) || defined(__linux__) #define INT64FIX (PGLONG64) #else #define INT64FIX #endif #endif /* CompilerDefs_h_ */ You can case statement the various CXX compilers based in its version number (V5.X vs V6.X the ANSI compiler) A few make flags (I use GNU make) # 111-D statement is unreachable # 177-D variable "foo" was declared but never referenced # 193-D zero used for undefined preprocessing identifier # 236-D controlling expression is constant # 340-D value copied to temporary, reference to temporary used # 402-D class "Dispatcher" has no accessible constructor # 835-D function parameter "foo" was declared but never referenced DWARNINGS = -msg_display_number -msg_display_tag \ -msg_disable 111,177,193,236,340,402,835 OWARNINGS = -msg_disable 111,177,193,236,340,402,835 MAINFLAGS = -ieee -verbose -use_ld_input -ttimestamp -nocompress #DEBUGFLAGS = -g -O0 -w0 $(DWARNINGS) -gall -gall_pattern PGint.cxx DEBUGFLAGS = -g -O0 -w0 $(DWARNINGS) OPTIMFLAGS = -O4 -w1 $(OWARNINGS) TMPLFLAGS = -ptr $(PGVENEERDIR)/Templates.DB -pts LIBFLAGS = -shared -o LINKFLAGS = $(CCFLAGS) # if cxx starts whining about code and data overlapping one another #LIBFLAGS = -shared -T 0x20000000 -D 0x40000000 -o #OTHEROBJS = $(PGVENEERDIR)/Templates.DB/*.$(OBJEXT) OTHEROBJS = the -verbose leads to the choices being displayed when an overload conflict is detected. Our software targets SlowLaris 2.5, Windows-NT 4.0 and 5.0, SGI IRIX 6.2/6.4, OSF1 4.X, netBSD, Linux (redhat). The compiler errors I see are very typical of the ANSI changes. overall, very nice stuff. You have a good product. berkley
Status: NEW → ASSIGNED
Status: ASSIGNED → RESOLVED
Closed: 26 years ago
OS: All
Resolution: --- → INVALID
The Unix build system is pretty mature now, this is a really vague bug report, please re-open this if you can be more specific.
Status: RESOLVED → CLOSED
scadds
Ignore my preivous comments. thanx.
Product: Browser → Seamonkey
You need to log in before you can comment on or make changes to this bug.