1. 21 Aug, 2020 40 commits
    • Tony Farrell's avatar
      Support C++17 · ea9343a2
      Tony Farrell authored
          Modify Project.defs to support C++17.
    • Tony Farrell's avatar
      Fix problem with bison for make release target · 323567d8
      Tony Farrell authored
          BisonCppTarget was not correct for "make release", it would generate the
          .hpp file incorrectly.
    • Tony Farrell's avatar
      Dont delete temp files when exiting with error · 66061c67
      Tony Farrell authored
         Don't invoke wrapup() in imake.c if exiting with an error.  That ensures
         the scratch files are around to help debug.
    • Tony Farrell's avatar
      Disable building DJAVA on a mac · 79d7cdc7
      Tony Farrell authored
         Changes to JAVA and MacOS make it just too hard to build the JAVA stuff
         given the AAO no longer is using it for instrumentation (with the
         decomissioning of UCLES).  It is still used for the ODC GUI which we use
         for testing, but that runs on linux only, hasn't been run on a Mac for
         a long time.
    • Tony Farrell's avatar
      Fix issue triggered by latest versions of Mac XCode - version 9 · 6148c2b9
      Tony Farrell authored
        Modify imake.c to remove  get_gcc_incdir() function and its call, this
          is not needed in DRAMA and was causing issues in MacOS High Sierra
          (and Sierra if running later XCode).
    • Tony Farrell's avatar
      Change from linking mess.o to libmess.a · 9744022a
      Tony Farrell authored
         Project.defs - change from mess.o to libmess.a
    • Tony Farrell's avatar
      Fix bug in previous change · 747caf54
      Tony Farrell authored
         Fix bug in previous change.
    • Tony Farrell's avatar
      Support overriding of DepCmd · 57803d89
      Tony Farrell authored
         Allow architecture specific files to override DepCmd, and do so in macosx.cf
    • Tony Farrell's avatar
      New macros supporting using flex and bison and creating c++ objects · abda636c
      Tony Farrell authored
         Add new BisonCppObject() and FlexCppObject() macros exactly using
      	   bison and flex rather then yacc and lex.  These allow us to avoid
      	   using "sed" and to compile using C++ rather then C.  We can also
      	   now expand to using various bison and flex  features not available
      	   in yacc and lex themselves.
    • Tony Farrell's avatar
      Fix problem in later versions of tcsh with make dramadirs2 commands · f2bef4f6
      Tony Farrell authored
         Fix issue runing `eval make dramadirs2` and `eval make dramadirs2l` in later
         versions of tcsh.  Mods to Project.cf only.
    • Tony Farrell's avatar
      Change mac build to support ElCapitain · 978bf2f0
      Tony Farrell authored
         MacOsX shareable library link change to work properly on ElCapitan.
    • Tony Farrell's avatar
      Fix X11 build for MacOSX ElCapitan · ba523af9
      Tony Farrell authored
         MacOsX X11 must be found in /usr/X11 rather then /usr/X11R6. Required for MacOsX ElCapitan.
    • Tony Farrell's avatar
      hostype modified to support 32 bit on all intel mac os x versions · 6ff4fd24
      Tony Farrell authored
          hosttype supports running 32 bit on later versions of MacOsX, it still
          seems to be supported by all macs.
    • Tony Farrell's avatar
      Get X11 build on Yosemite working · 32718661
      Tony Farrell authored
          Pix up MacOSX X11 release directories for Yosemite - now in /opt.
    • Tony Farrell's avatar
      Proper support for C++11 and C++14 · 3bc6fcae
      Tony Farrell authored
          Properly support C++11 and C++14 in Projects.defs, linux.cf and macosx.cf.
    • Tony Farrell's avatar
      Modified drama.h to support apple Clang compiler · f87f77cb
      Tony Farrell authored
          Modified drama.h to support Apple Clang compiler.
    • Tony Farrell's avatar
      Remove references to X11 when building imake · f7158826
      Tony Farrell authored
          imake.c build does not require X11 include file Xosdefs.h, remove
      	it from imake.c and remove any reference to X11 include directory
      	from the makefile.imake.* files.
    • Tony Farrell's avatar
      dmkmf no longer needs to pass -L to imake · 872c274a
      Tony Farrell authored
          dmkmf no longer needs to pass -L to imake on Mac OS X, issue resolved by
             using lcc cpp.
    • InstTestAcc's avatar
      Fix white space handling issue lcc cpp around macro invocations · aa319260
      InstTestAcc authored
          Updated versions of  lcc_cpp/macro.c and lcc_cpp/tokens.c from lcc_cpp version 1.6
              as archived.
    • InstTestAcc's avatar
      Fix a couple of issues in cpp picked up by aatInstSystem build · a1773f3a
      InstTestAcc authored
          Updated versions of lcc_cpp/macro.c and lcc_cpp/cpp.h from lcc_cpp version 1.5
      	as archived.
    • Tony Farrell's avatar
      Move to using lcc cpp as c pre processor for all systems · 223c6874
      Tony Farrell authored
          Add lcc_cpp sub-directory. This has been extracted from ACMM sub-system
      	lcpp_cpp, version ACMM 1.4.  This is a modified version of the lcc
      	C compiler's C pre-processor.  The idea is that this gives
      	us a standard C pre-processor, rather then being dependent on
      	whatever one happens to be available.  (note - lcc_cpp/macro.c
      	comes from version 1.5 (under developement)
      	To ensure the right compliler and options are passed down, it is
      	built from the makefile.imake.<system> makefiles, but each of them
      	just drive the makefile makefile.lcc_cpp makefile
         Modified config files to support lcpp_cpp.  Note, can use macro
      	__DRAMA_CPP__ to determine if running this c preprocessor.  At the moment,
      	we have got it working without removing support for other c
      	preprocessors, through that is possible, particuarly, say anything
      	other then GNU.
         Modified makefile such that it has an "all" target and that it checks
      	the sources for imake, ccdv and lcpp.  In these cases, it removes
      	the executable before running the child make, to ensure the program
      	it built.
    • Keith's avatar
      Modified to build on Yosemite with Clang 6.0 · 1f339949
      Keith authored
         Changed macosx.cf to fix some problems that showed up under Yosemite
         and the Clang compiler. I think these should be OK under earlier OS X
         versions - that may not be the case, given the notes I've just seen in
         this file under version 4.26. (Presumably CruiseControl will test this.)
    • Tony Farrell's avatar
      Add comments on ways forward · 136d567d
      Tony Farrell authored
          Just adding comments.
          1. I suspect the best way of handling my C pre-processor
      	problems may be to just grab an open-source implementation as part of
      	this build.   Suggested is
      	Which has a BSD licence.  Need to check that this program builds on all
      	required machines.  If yes, then could use it.
         2.  Consider using autoconfigure to create drama_local.cf files.
    • Tony Farrell's avatar
      Record comments on remaining bug when running under CLang · 46ba04a3
      Tony Farrell authored
         Just logging work from investigating DRAMA Dyanmica libray problem.
      	Remaining problem seems to be that Contact3() is not working, but
               apparently only within LibShareVer() macro, possibly due to the double
                macro call.  An extra space is interted.  (Note, this bug shown
      	after removing the -static-libgcc flag to the compiler, which also
      	needs to be done correctly)
    • Tony Farrell's avatar
      MErge in 23.1.1 changes. Get largley working on MacOsX Mavericks, Clang compiler · f25f26a4
      Tony Farrell authored
         Merge in changes from, adding -rdynamic and -D_FILE_OFFSET_BITS=64 as
         Modify imake to replace any instances of @$ by a single quote.  This allows
          us to work around the remaining imake issue with CLang on MacOsX Mavericks.
          Modified Project.defs to replace single quotes in "sed" commands with
             Still outstanding - DRAMA Dynamic library (in git sub-system) does not build.
    • Tony Farrell's avatar
      Almost have working with CLang · 252656fe
      Tony Farrell authored
         Modified imake.c to remove ## sequences found in the output from C++
         Modified Imake.tmp such that if __clang__ is defined, then we define
          Concat() macros using the ## format.   If the CLang compiler is run
          with -traditional but with ## used in concat, they are passed through
          to the output file.  Without -traditional, CLang is making a mess of
          the output.
        Modified imake.c to catch the StringDefine() macro and expand it manually.
      	NOTE - Error checking on this is poor.  Needs attention.
        Modified Project.defs such that under CLang, we don't define StringDefine(),
      	since we can't reliably expand that.
        At this point, we have dmkmf working for DRAMA except for yacc/lex releated
      	code, where the use of   "sed 's/FIX-Y/prefix/g'" causes problems, in
      	particular, it seems CLang's C++ will not expand prefix as it is within
      	quote characters.
      	*** More work needed. But seem to be close ***
      		Consider if I need to replace single quotes on input with
      		something else and then put them back on output. Or maybe
      		have a special sequence, e.g. @$ which is replaced by a
      		single quote on output.
      		Might also get original StringDefine() working.
    • Tony Farrell's avatar
      Improve ccdv.c output. Update mv2700.cf · ae7181ee
      Tony Farrell authored
          Changed to ccdv.c to make it produce better output for GCC.
          Updated mv2700.cf with latest version from Peter Young.
    • Tony Farrell's avatar
      Add DGCC_DIAG_ON/DGCC_DIAG_OFF macros to drama.h · fc523f72
      Tony Farrell authored
          Add DGCC_DIAG_ON/DGCC_DIAG_OFF macros to drama.h
    • Tony Farrell's avatar
      Fix dependcy check issue and add new C++ compiler option modes · 07561b1b
      Tony Farrell authored
          Revamp dependency stuff to have diffent options for c from c++
          Add AnsiCC98(), AnsiCC11() and Full equivalents.
    • Tony Farrell's avatar
      Fix MacOsX lion build - default ot using gcc rather then cc · 1c49d4aa
      Tony Farrell authored
          imake now uses gcc rather then cc on APPLE machines - as from
          Xcode 4, the default cc may be Clang, the assoicated pre-processor
          of which gives us pain.
    • InstTestAcc's avatar
      Ensure we can build 32 bit on MacOsX Lion · 70c29b30
      InstTestAcc authored
          Ensure we can override hosttype on Lion (10.7) and force a 32 bit
      	build - these do work so we support them.
          ccdv.c now supports xterm-256color as a terminal - e.g. Lion Terminal
    • Tony Farrell's avatar
      Support lion - default ot 64 bit · 77bd67ec
      Tony Farrell authored
          hosttype defaults to 64 bit on Lion (10.7).
    • Tony Farrell's avatar
      Support intel macs builting with 64 bit kernels · 00b7b49c
      Tony Farrell authored
          Modify hosttype to work with MacOsX Kernel running 64 bit.
    • InstTestAcc's avatar
      Don t run solaris cc during dmkmf command · c2bb691b
      InstTestAcc authored
          Modify imake.c to remove call of Solaris "cc" at run time - this was being
          used to get the compiler version and write it to a macro.  We don't use
          this and the call could hang if the compiler did not have a licence.
    • InstTestAcc's avatar
      Add FortranProgramTarget macro · a6e7685b
      InstTestAcc authored
          Add FortranProgramTarget() macro.
    • InstTestAcc's avatar
      Revamp makedepend approach · 748eeadc
      InstTestAcc authored
           Modify GNU Make/GCC dependency checking algrothim.
              The new approach used is based on that found at
              Method attributed to Tom Tromey (tromey@cygnus.com) and
              described by Paul D. Smith (psmith@gnu.org).
              This approach relies on the "-include" command rather
               then the "include" commmand being used (see ImakeBaseS2.tmpl).
              "-include" is a GNU make command which only include a file
              if it exists, and does not complain otherwise.  We only build
              the dependency file when we compile the module, and hence
      	only start doing the check after the first build.
      	Changes to Project.defs, ImakeBasicS1.tmpl and ImakeBasicS2.tmpl
    • InstTestAcc's avatar
      Add architecture specific options to shared library builds · 80e9c0d7
      InstTestAcc authored
           Modify linux.cf to use $(ARCH_OPTIONS) in shared library builds.
    • Tony Farrell's avatar
      Support 32 or 64 bit builds on linux 64 bit machines · fccf3c29
      Tony Farrell authored
           Modify makefile.imake.linux_x86 and makefile.imake.linux_x86_64
      	  to build correct architecture (as selected by linux "setarch"
      	  command).  Done by specify -m32 or -m64 to compiler.
           Modify linux.cf to set ArchitectureCompileLinkOptions to -m32 or -m64
      	as required, which should pass this option to the compiler in all
      	appropiate places.
    • Tony Farrell's avatar
      Remove errant output in last change · 6874ab89
      Tony Farrell authored
           Remove errant output in last change.
    • Tony Farrell's avatar
      Fix error getting host version number on MacOsX when not running in login releated window · 370fb8ee
      Tony Farrell authored
           hosttype should use uname -r to get MacOsX version number, not loging
      	     version number.