diff options
-rwxr-xr-x | dmake/Makefile.am | 5 | ||||
-rwxr-xr-x | dmake/configure.in | 47 | ||||
-rw-r--r-- | dmake/extern.h | 2 | ||||
-rw-r--r-- | dmake/rulparse.c | 2 | ||||
-rwxr-xr-x | dmake/startup/unix/Makefile.am | 2 | ||||
-rwxr-xr-x | dmake/startup/unix/macosx/Makefile.am | 6 | ||||
-rwxr-xr-x | dmake/unix/Makefile.am | 6 | ||||
-rw-r--r-- | dmake/unix/tempnam.c | 106 |
8 files changed, 141 insertions, 35 deletions
diff --git a/dmake/Makefile.am b/dmake/Makefile.am index 762717a40df6..b640a2798729 100755 --- a/dmake/Makefile.am +++ b/dmake/Makefile.am @@ -2,9 +2,9 @@ # # $RCSfile: Makefile.am,v $ # -# $Revision: 1.4 $ +# $Revision: 1.5 $ # -# last change: $Author: hjs $ $Date: 2002-04-09 17:10:48 $ +# last change: $Author: mh $ $Date: 2002-07-11 08:53:29 $ # # The Contents of this file are made available subject to the terms of # either of the following licenses @@ -81,4 +81,5 @@ bin_PROGRAMS = dmake # set the include path found by configure INCLUDES = -I$(top_srcdir) -I$(top_builddir) -I$(top_srcdir)/unix/@OS_VERSION@ -I$(top_srcdir)/unix -I$(top_srcdir)/unix/@OS_VERSION@/gnu +CFLAGS += -O diff --git a/dmake/configure.in b/dmake/configure.in index 4f7b50227697..9c5420120bff 100755 --- a/dmake/configure.in +++ b/dmake/configure.in @@ -11,7 +11,6 @@ AC_PREREQ(1.4) AM_INIT_AUTOMAKE($PACKAGE, $VERSION, no-define) dnl Checks for programs. -#AC_PROG_CXX AC_PROG_CC AC_PROG_CPP AC_PROG_INSTALL @@ -45,35 +44,27 @@ AC_CHECK_FUNCS(getcwd getwd putenv strcspn strerror strspn strstr) dnl Checks for OS OS_UNAME=`uname` -case $OS_UNAME in - SunOS) - OS_VERSION=solaris - echo "Solaris found" - ;; - Linux) - OS_VERSION=linux - echo "Linux found" - ;; - Irix) - OS_VERSION=sysvr4 - echo "Irix found" - ;; - FreeBSD) - OS_VERSION=386ix - echo "FreeBSD found" - ;; - CYGWIN* | cygwin* | mingw*) - OS_VERSION=cygwin - echo "cygwin found" - ;; - *) - echo "Unknown OS" - ;; -esac +if test ${OS_UNAME} = SunOS; then + echo "Solaris found" + OS_VERSION=solaris +fi +if test ${OS_UNAME} = Linux; then + echo "Linux found" + OS_VERSION=linux +fi +if test ${OS_UNAME} = Irix; then + echo "Irix found" + OS_VERSION=sysvr4 +fi +if test ${OS_UNAME} = Darwin; then + echo "Mac OS X found" + OS_VERSION=macosx +fi AC_SUBST(OS_VERSION) AC_OUTPUT(Makefile unix/Makefile startup/Makefile startup/unix/Makefile \ - startup/unix/linux/Makefile startup/unix/solaris/Makefile dmakeroot.h ) + startup/unix/linux/Makefile startup/unix/solaris/Makefile \ + startup/unix/macosx/Makefile dmakeroot.h ) #AC_OUTPUT(unix/bsd43/Makefile Makefile makefile unix/solaris/Makefile dbug/malloc/makefile unix/Makefile) dnl ****************************** @@ -108,7 +99,7 @@ _______EOF if test x$prefix != x; then echo '"DMAKEROOT := '$prefix'/share/startup",' >> $outfile - echo '"OS := '`uname`'",' >> $outfile + echo '"OS := '${OS_VERSION}'",' >> $outfile fi if cmp -s $outfile dmakeroot.h; then echo dmakeroot.h is unchanged diff --git a/dmake/extern.h b/dmake/extern.h index c95b9ecce024..07060e65d5d2 100644 --- a/dmake/extern.h +++ b/dmake/extern.h @@ -1,4 +1,4 @@ -/* RCS $Id: extern.h,v 1.2 2001-04-20 14:21:05 mh Exp $ +/* RCS $Id: extern.h,v 1.3 2002-07-11 08:53:29 mh Exp $ -- -- SYNOPSIS -- External declarations for dmake functions. diff --git a/dmake/rulparse.c b/dmake/rulparse.c index c04629758246..430c60901aef 100644 --- a/dmake/rulparse.c +++ b/dmake/rulparse.c @@ -1,4 +1,4 @@ -/* RCS $Id: rulparse.c,v 1.2 2002-04-10 15:40:39 hjs Exp $ +/* RCS $Id: rulparse.c,v 1.3 2002-07-11 08:53:30 mh Exp $ -- -- SYNOPSIS -- Perform semantic analysis on input diff --git a/dmake/startup/unix/Makefile.am b/dmake/startup/unix/Makefile.am index da0168edc29a..67f75672aa98 100755 --- a/dmake/startup/unix/Makefile.am +++ b/dmake/startup/unix/Makefile.am @@ -4,5 +4,5 @@ startupdir = $(datadir)/startup/unix startup_DATA = macros.mk recipes.mk #SUBDIRS = 386ix bsd43 coherent linux macosx solaris sysvr1 sysvr3 sysvr4 xenix -SUBDIRS = linux +SUBDIRS = @OS_VERSION@ diff --git a/dmake/startup/unix/macosx/Makefile.am b/dmake/startup/unix/macosx/Makefile.am new file mode 100755 index 000000000000..54bf5b17b5d3 --- /dev/null +++ b/dmake/startup/unix/macosx/Makefile.am @@ -0,0 +1,6 @@ + +startupdir = $(datadir)/startup/unix/macosx + +startup_DATA = macros.mk + + diff --git a/dmake/unix/Makefile.am b/dmake/unix/Makefile.am index 01d494d2155f..22285b6a9211 100755 --- a/dmake/unix/Makefile.am +++ b/dmake/unix/Makefile.am @@ -1,11 +1,13 @@ noinst_LIBRARIES = libunix.a -libunix_a_SOURCES = arlib.c dcache.c dirbrk.c rmprq.c ruletab.c runargv.c +libunix_a_SOURCES = arlib.c dcache.c dirbrk.c rmprq.c ruletab.c runargv.c tempnam.c -INCLUDES = -I$(top_srcdir) -I$(top_builddir) -I$(top_srcdir)/unix/@OS_VERSION@/gnu -I$(top_srcdir)/unix/@OS_VERSION@ -I$(top_srcdir)/unix +INCLUDES = -I$(top_srcdir) -I$(top_builddir) -I$(top_srcdir)/unix/@OS_VERSION@/gnu -I$(top_srcdir)/unix -I$(top_srcdir)/unix/@OS_VERSION@ +CFLAGS += -O + diff --git a/dmake/unix/tempnam.c b/dmake/unix/tempnam.c new file mode 100644 index 000000000000..4b143ed8d0d7 --- /dev/null +++ b/dmake/unix/tempnam.c @@ -0,0 +1,106 @@ +/* RCS $Id: tempnam.c,v 1.2 2002-07-11 08:53:35 mh Exp $ +-- +-- SYNOPSIS +-- tempnam +-- +-- DESCRIPTION +-- temp file name generation routines. +-- +-- AUTHOR +-- Dennis Vadura, dvadura@dmake.wticorp.com +-- +-- WWW +-- http://dmake.wticorp.com/ +-- +-- COPYRIGHT +-- Copyright (c) 1996,1997 by WTI Corp. All rights reserved. +-- +-- This program is NOT free software; you can redistribute it and/or +-- modify it under the terms of the Software License Agreement Provided +-- in the file <distribution-root>/readme/license.txt. +-- +-- LOG +-- Use cvs log to obtain detailed change logs. +*/ + +#ifdef __APPLE__ + +/*LINTLIBRARY*/ +#include <stdio.h> +#include <string.h> +#include <stdlib.h> + +#if defined(max) +# undef max +#endif +#define max(A,B) (((A)<(B))?(B):(A)) + +extern char *mktemp(); +extern int access(); +int d_access(); + +char * +dtempnam(dir, prefix) +char *dir; /* use this directory please (if non-NULL) */ +char *prefix; /* use this (if non-NULL) as filename prefix */ +{ + static int count = 0; + register char *p, *q, *tmpdir; + int tl=0, dl=0, pl; + char buf[30]; + + pl = strlen(P_tmpdir); + + if( (tmpdir = getenv("TMPDIR")) != NULL ) tl = strlen(tmpdir); + else if( (tmpdir = getenv("TMP")) != NULL ) tl = strlen(tmpdir); + if( dir != NULL ) dl = strlen(dir); + + if( (p = malloc((unsigned)(max(max(dl,tl),pl)+13))) == NULL ) + return(NULL); + + *p = '\0'; + + if( (tl == 0) || (d_access( strcpy(p, tmpdir), 0) != 0) ) + if( (dl == 0) || (d_access( strcpy(p, dir), 0) != 0) ) + if( d_access( strcpy(p, P_tmpdir), 0) != 0 ) + if( !prefix ) + prefix = "tp"; + + if(prefix) + { + *(p+strlen(p)+2) = '\0'; + (void)strncat(p, prefix, 2); + } + + sprintf( buf, "%08x", getpid() ); + buf[6]='\0'; + (void)strcat(p, buf ); + sprintf( buf, "%04d", count++ ); + q=p+strlen(p)-6; + *q++ = buf[0]; *q++ = buf[1]; + *q++ = buf[2]; *q++ = buf[3]; + + if( (q = strrchr(p,'.')) != NULL ) *q = '\0'; + + return(p); +} + + + +d_access( name, flag ) +char *name; +int flag; +{ + extern char *DirSepStr; + char *p; + int r; + + if( name == NULL || !*name ) return(1); /* NULL dir means current dir */ + r = access( name, flag ); + p = name+strlen(name)-1; + if(*p != '/' && *p != '\\') strcat( p, DirSepStr ); + + return( r ); +} + +#endif |