Pārlūkot izejas kodu

Major build system clean-up
Remove dead code


git-svn-id: https://svn.osgeo.org/grass/grass/trunk@33038 15284696-431f-4ddb-bdfa-cd5b030d7da7

Glynn Clements 16 gadi atpakaļ
vecāks
revīzija
1292bf9a1e
100 mainītis faili ar 511 papildinājumiem un 1296 dzēšanām
  1. 3 36
      Makefile
  2. 0 1
      db/Makefile
  3. 1 3
      db/drivers/Makefile
  4. 6 34
      db/drivers/dbf/Makefile
  5. 27 57
      db/drivers/mysql/Makefile
  6. 1 108
      db/drivers/mysql/db.c
  7. 99 0
      db/drivers/mysql/dbe.c
  8. 3 0
      db/drivers/mysql/proto.h
  9. 70 0
      db/drivers/mysql/replace.c
  10. 4 33
      db/drivers/odbc/Makefile
  11. 5 21
      db/drivers/ogr/Makefile
  12. 5 21
      db/drivers/postgres/Makefile
  13. 4 20
      db/drivers/sqlite/Makefile
  14. 0 1
      doc/Makefile
  15. 0 1
      general/Makefile
  16. 0 1
      general/manage/Makefile
  17. 5 6
      general/manage/lib/Makefile
  18. 0 4
      gui/Makefile
  19. 0 1
      gui/tcltk/Makefile
  20. 12 7
      gui/tcltk/gis.m/Makefile
  21. 1 3
      gui/wxpython/Makefile
  22. 2 4
      gui/wxpython/docs/Makefile
  23. 0 2
      gui/wxpython/scripts/Makefile
  24. 2 3
      imagery/Makefile
  25. 0 1
      imagery/i.ortho.photo/Makefile
  26. 0 1
      imagery/i.smap/Makefile
  27. 50 0
      include/Make/Compile.make
  28. 20 0
      include/Make/DB.make
  29. 4 2
      include/Make/Dir.make
  30. 0 1
      include/Make/Doxygen.make
  31. 5 4
      include/Make/Etc.make
  32. 10 52
      include/Make/Grass.make
  33. 0 3
      include/Make/Html.make
  34. 6 11
      include/Make/Lib.make
  35. 5 4
      include/Make/Module.make
  36. 4 3
      include/Make/Multi.make
  37. 4 0
      include/Make/Other.make
  38. 10 58
      include/Make/Rules.make
  39. 2 2
      include/Make/Script.make
  40. 1 1
      include/Make/Shlib.make
  41. 32 0
      include/Make/Vars.make
  42. 3 12
      lib/Makefile
  43. 5 5
      lib/bitmap/Makefile
  44. 4 12
      lib/btree/Makefile
  45. 0 0
      lib/btree/test/try.c
  46. 0 11
      lib/cdhc/Makefile
  47. 0 0
      lib/cdhc/c-drive.c.txt
  48. 0 26
      lib/datetime/Makefile
  49. 0 1
      lib/db/Makefile
  50. 3 16
      lib/db/sqlp/Makefile
  51. 1 1
      lib/db/sqlp/lex.l
  52. 0 0
      lib/db/sqlp/sqlp.y
  53. 1 3
      lib/db/sqlp/test/Makefile
  54. 1 1
      lib/driver/Makefile
  55. 0 1
      lib/external/Makefile
  56. 1 4
      lib/external/bwidget/Makefile
  57. 0 1
      lib/fonts/Makefile
  58. 1 3
      lib/fonts/fonts/Makefile
  59. 15 24
      lib/form/Makefile
  60. 4 9
      lib/gtcltk/Makefile
  61. 24 78
      lib/init/Makefile
  62. 0 38
      lib/init/grass-run.src
  63. 0 21
      lib/init/grass-xterm-wrapper
  64. 0 1
      lib/iostream/Makefile
  65. 0 13
      lib/linkm/Makefile
  66. 0 17
      lib/linkm/destroy.c
  67. 0 0
      lib/linkm/test/linkm.c
  68. 0 0
      lib/linkm/test/malloc.c
  69. 0 0
      lib/linkm/test/speed.c
  70. 0 0
      lib/linkm/test/speed2.c
  71. 0 0
      lib/linkm/test/speed3.c
  72. 0 0
      lib/linkm/test/try.c
  73. 0 0
      lib/linkm/test/try2.c
  74. 4 0
      lib/nviz/Makefile
  75. 4 0
      lib/ogsf/Makefile
  76. 7 30
      lib/pngdriver/Makefile
  77. 3 9
      lib/proj/Makefile
  78. 1 4
      lib/python/Makefile
  79. 1 1
      lib/raster/Makefile
  80. 0 1
      lib/rst/Makefile
  81. 0 15
      lib/segment/Makefile
  82. 0 128
      lib/segment/debug.c
  83. 0 111
      lib/segment/try.c
  84. 0 1
      lib/vector/Makefile
  85. 4 10
      lib/vector/dglib/Makefile
  86. 5 31
      lib/vector/diglib/Makefile
  87. 0 34
      lib/vector/diglib/portable/i386-pc-mingw32msvc.h
  88. 1 8
      lib/vector/rtree/Makefile
  89. 0 0
      lib/vector/rtree/docs/test.c
  90. 0 71
      lib/vector/rtree/sphvol.c
  91. 1 3
      locale/Makefile
  92. 8 12
      macosx/Makefile
  93. 4 8
      macosx/app/Makefile
  94. 1 5
      macosx/modbuild/Makefile
  95. 0 1
      misc/Makefile
  96. 0 1
      ps/Makefile
  97. 1 2
      raster/Makefile
  98. 0 1
      raster/r.le/Makefile
  99. 0 1
      raster/r.li/Makefile
  100. 0 0
      raster/r.mapcalc/Makefile

+ 3 - 36
Makefile

@@ -19,8 +19,7 @@
 
 MODULE_TOPDIR = .
 
-include $(MODULE_TOPDIR)/include/Make/Platform.make
-include $(MODULE_TOPDIR)/include/Make/Grass.make
+include $(MODULE_TOPDIR)/include/Make/Vars.make
 
 # Install directories
 exec_prefix=            ${prefix}
@@ -121,41 +120,9 @@ libs:
 	-cp -f $(FILES) ${ARCH_DISTDIR}/
 	-cp -fr --parents include ${ARCH_DISTDIR}/
 
-#we leave this target for a while so that people can easily upgrade (11/2004):
-mix:
-	@echo "NOTE: 'make mix' is no longer needed (changed 9 Nov 2004)"
-
-mixclean:
-	list='$(SUBDIRS)'; \
-	find include -type l -exec rm {} \; 2>/dev/null; \
-	for subdir in $$list; do \
-		find $$subdir -type l -exec rm {} \; 2>/dev/null; \
-	done
-	-rm -f MIX 
-
-# Any target that has a dependency on this target will be forced to be made.
-# If we switch to GNU Make then this feature can be replaced with .PHONY
-FORCE:
-
 cleandistdirs: 
-	-rm -rf ${ARCH_DISTDIR}/bin/         2>/dev/null
-	-rm -rf ${ARCH_DISTDIR}/bwidget/     2>/dev/null
-	-rm -rf ${ARCH_DISTDIR}/docs/        2>/dev/null
-	-rm -rf ${ARCH_DISTDIR}/driver/      2>/dev/null
-	-rm -rf ${ARCH_DISTDIR}/etc/         2>/dev/null
-	-rm -rf ${ARCH_DISTDIR}/fonts/       2>/dev/null
-	-rm -rf ${ARCH_DISTDIR}/include/     2>/dev/null
-	-rm -rf ${ARCH_DISTDIR}/lib/         2>/dev/null
-	-rm -rf ${ARCH_DISTDIR}/locale/      2>/dev/null
-	-rm -rf ${ARCH_DISTDIR}/man/         2>/dev/null
-	-rm -rf ${ARCH_DISTDIR}/scripts/     2>/dev/null
-	-rm -rf ${ARCH_DISTDIR}/demolocation/ 2>/dev/null
-	-rm -rf ${ARCH_DISTDIR}/tcltkgrass/ 2>/dev/null
-	-rm -f ${ARCH_DISTDIR}/AUTHORS ${ARCH_DISTDIR}/CHANGES ${ARCH_DISTDIR}/REQUIREMENTS.html ${ARCH_DISTDIR}/COPYING ${ARCH_DISTDIR}/GPL.TXT ${ARCH_DISTDIR}/grass${GRASS_VERSION_MAJOR}${GRASS_VERSION_MINOR}.tmp 2>/dev/null
-	-rmdir ${ARCH_DISTDIR}
-	-rm -f ${ARCH_BINDIR}/grass${GRASS_VERSION_MAJOR}${GRASS_VERSION_MINOR} 2>/dev/null
-	-rm -f ${ARCH_BINDIR}/grass${GRASS_VERSION_MAJOR}${GRASS_VERSION_MINOR}.bat 2>/dev/null
-	-rmdir ${ARCH_BINDIR}
+	-rm -rf ${ARCH_DISTDIR}
+	-rm -rf ${ARCH_BINDIR}
 
 # Clean out the strings extracted from scripts for translation
 cleanscriptstrings:

+ 0 - 1
db/Makefile

@@ -14,4 +14,3 @@ default: htmldir
 
 htmldir: subdirs
 
-clean: cleansubdirs

+ 1 - 3
db/drivers/Makefile

@@ -4,7 +4,7 @@ MODULE_TOPDIR = ../..
 #always compile dialog lib and dbf driver:
 SUBDIRS1 = dbf
 
-include $(MODULE_TOPDIR)/include/Make/Platform.make
+include $(MODULE_TOPDIR)/include/Make/Vars.make
 
 # add odbc:
 ifneq ($(strip $(ODBCLIB)),)
@@ -36,5 +36,3 @@ SUBDIRS =  $(SUBDIRS1) $(SUBDIRS2) $(SUBDIRS3) $(SUBDIRS4) $(SUBDIRS5) $(SUBDIRS
 include $(MODULE_TOPDIR)/include/Make/Dir.make
 
 default: parsubdirs
-
-clean: cleansubdirs

+ 6 - 34
db/drivers/dbf/Makefile

@@ -1,41 +1,13 @@
-
 MODULE_TOPDIR = ../../..
 
-include $(MODULE_TOPDIR)/include/Make/Platform.make
-include $(MODULE_TOPDIR)/include/Make/Grass.make
-include $(MODULE_TOPDIR)/include/Make/Rules.make
-
-DRIVER=$(DBDRIVERDIR)/dbf$(EXE)
 DEPENDENCIES = $(GISDEP)
-EXTRA_INC = -I$(MODULE_TOPDIR)/lib/db/dbmi_driver
-
-LIBES = $(DBMIDRIVERLIB) $(DBMIBASELIB) $(DBMIEXTRALIB) $(SQLPLIB) $(SHAPELIB) $(DBSTUBSLIB) $(GISLIB) $(DATETIMELIB)
 
-DRVDOC=$(GISBASE)/docs/html/grass-dbf.html
+PGM = dbf
 
-OBJS 	=  \
-	column.o \
-	cursor.o \
-	db.o \
-	dbfexe.o \
-	describe.o \
-	driver.o \
-	error.o \
-	execute.o \
-	fetch.o \
-	listtab.o \
-	main.o \
-	select.o \
-	str.o \
-	table.o \
-	create_table.o
+include $(MODULE_TOPDIR)/include/Make/Vars.make
+MOD_OBJS := $(filter-out main_debug.o,$(AUTO_OBJS))
+include $(MODULE_TOPDIR)/include/Make/DB.make
 
-ARCH_OBJS := $(foreach obj,$(OBJS),$(OBJDIR)/$(obj))
-
-default: $(DRIVER) $(DRVDOC)
-
-$(DRIVER): $(ARCH_OBJS)
-	$(CC) $(LDFLAGS) -o $@ $(ARCH_OBJS) $(FMODE_OBJ) $(LIBES) $(MATHLIB) $(XDRLIB)
+LIBES = $(DBMIDRIVERLIB) $(DBMIBASELIB) $(DBMIEXTRALIB) $(SQLPLIB) $(SHAPELIB) $(DBSTUBSLIB) $(GISLIB) $(DATETIMELIB)
 
-$(DRVDOC): grass-dbf.html
-	$(INSTALL_DATA) grass-dbf.html $(DRVDOC)
+default: dbmi

+ 27 - 57
db/drivers/mysql/Makefile

@@ -1,67 +1,37 @@
-
 MODULE_TOPDIR = ../../..
 
-include $(MODULE_TOPDIR)/include/Make/Platform.make
-include $(MODULE_TOPDIR)/include/Make/Grass.make
-include $(MODULE_TOPDIR)/include/Make/Rules.make
-
-CLIENT_DRIVER=$(DBDRIVERDIR)/mysql$(EXE)
-EMBEDED_DRIVER=$(DBDRIVERDIR)/mesql$(EXE)
-
-LIBES = $(DBMIDRIVERLIB) $(DBMIBASELIB) $(SQLPLIB) $(DBSTUBSLIB) \
-	 $(GISLIB) $(DATETIMELIB) 
-
-EXTRA_CFLAGS = $(MYSQLINCPATH) $(TCLINCDIR) $(TKINCDIR)
-EXTRA_INC = -I$(MODULE_TOPDIR)/lib/db/dbmi_driver
-
 DEPENDENCIES = $(GISDEP)
 
-DRVDOC=$(GISBASE)/docs/html/grass-mysql.html
-EDRVDOC=$(GISBASE)/docs/html/grass-mesql.html
-
-OBJS 	=  \
-	create_table.o \
-	cursor.o \
-	describe.o \
-	driver.o \
-	error.o \
-	execute.o \
-	fetch.o \
-	index.o \
-	listtab.o \
-	main.o \
-	parse.o	\
-	select.o 
-
-CLIENT_OBJS = $(OBJS) db.o
-EMBEDED_OBJS = $(OBJS) dbe.o 
-
-CLIENT_ARCH_OBJS := $(foreach obj,$(CLIENT_OBJS),$(OBJDIR)/$(obj))
-EMBEDED_ARCH_OBJS := $(foreach obj,$(EMBEDED_OBJS),$(OBJDIR)/$(obj))
+include $(MODULE_TOPDIR)/include/Make/Vars.make
 
-ifneq ($(strip $(MYSQLDLIB)),) 
-ifneq ($(strip $(CXX)),) 
-    EDRIVER = $(EMBEDED_DRIVER)
+ifeq ($(PGM),mysql)
+MOD_OBJS := $(filter-out dbe.o,$(MOD_OBJS))
+else
+MOD_OBJS := $(filter-out db.o,$(MOD_OBJS))
 endif
-endif
-
-default: $(CLIENT_DRIVER) $(EDRIVER) $(DRVDOC) $(EDRVDOC)
-
-$(CLIENT_DRIVER): $(CLIENT_ARCH_OBJS)
-	$(CC) $(LDFLAGS) -o $@ $(CLIENT_ARCH_OBJS) $(FMODE_OBJ) $(LIBES) \
-		$(MYSQLLIBPATH) $(MYSQLLIB) $(MATHLIB) $(XDRLIB)
 
-$(EMBEDED_DRIVER): $(EMBEDED_ARCH_OBJS)
-	$(CXX) $(LDFLAGS) -o $@ $(EMBEDED_ARCH_OBJS) $(FMODE_OBJ) \
-		$(MYSQLDLIB) $(LIBES) $(MATHLIB) $(XDRLIB)
+include $(MODULE_TOPDIR)/include/Make/DB.make
 
-$(OBJDIR)/dbe.o : db.c $(DEPENDENCIES) $(LOCAL_HEADERS)
-	@test -d $(OBJDIR) || mkdir $(OBJDIR)
-	$(CC) -DMESQL=1 $(CFLAGS) $(EXTRA_CFLAGS) $(NLS_CFLAGS) $(EXTRA_INC) $(INC) \
-		-o $@ -c db.c
+LIBES = $(DBMIDRIVERLIB) $(DBMIBASELIB) $(DBSTUBSLIB) \
+	 $(GISLIB) $(DATETIMELIB) 
+EXTRA_CFLAGS = $(MYSQLINCPATH) $(TCLINCDIR) $(TKINCDIR)
+EXTRA_LDFLAGS = $(MYSQLLIBPATH)
 
-$(DRVDOC): grass-mysql.html
-	$(INSTALL_DATA) grass-mysql.html $(DRVDOC)
+ifeq ($(PGM),mysql)
+LIBES += $(MYSQLLIB)
+else
+LIBES += $(MYSQLDLIB)
+LINK = $(CXX)
+endif
 
-$(EDRVDOC): grass-mesql.html
-	$(INSTALL_DATA) grass-mesql.html $(EDRVDOC)
+ifeq ($(PGM),)
+default:
+	$(MAKE) PGM=mysql
+ifneq ($(strip $(MYSQLDLIB)),)
+ifneq ($(strip $(CXX)),)
+	$(MAKE) PGM=mesql
+endif
+endif
+else
+default: dbmi
+endif

+ 1 - 108
db/drivers/mysql/db.c

@@ -19,8 +19,6 @@
 #include "globals.h"
 #include "proto.h"
 
-int replace_variables(char *, char **, char **);
-
 int db__driver_open_database(dbHandle * handle)
 {
     char *name;
@@ -38,7 +36,6 @@ int db__driver_open_database(dbHandle * handle)
     G_debug(3, "db_driver_open_database() mysql: database definition = '%s'",
 	    name);
 
-#ifndef MESQL
     {
 	/* Client version */
 	char *user, *password;
@@ -71,118 +68,14 @@ int db__driver_open_database(dbHandle * handle)
 	}
     }
 
-#else
-
-    /* Embedded version */
-    {
-	char *datadir, *database;
-	char *server_args[4];
-	char *buf;
-
-	if (!replace_variables(name, &datadir, &database)) {
-	    append_error(_("Cannot parse MySQL embedded database name"));
-	    append_error(mysql_error(connection));
-	    report_error();
-	    return DB_FAILED;
-	}
-
-	server_args[0] = "mesql";	/* this string is not used */
-	G_asprintf(&buf, "--datadir=%s", datadir);
-	server_args[1] = buf;
-	/* With InnoDB it is very slow to close the database */
-	server_args[2] = "--skip-innodb";	/* OK? */
-	/* Without --bootstrap it complains about missing 
-	 * mysql.time_zone_leap_second table */
-	server_args[3] = "--bootstrap";	/* OK? */
-
-	if (mysql_server_init(4, server_args, NULL)) {
-	    append_error(_("Cannot initialize MySQL embedded server"));
-	    append_error(mysql_error(connection));
-	    report_error();
-	    free(datadir);
-	    free(database);
-	    return DB_FAILED;
-	}
-
-	connection = mysql_init(NULL);
-	mysql_options(connection, MYSQL_OPT_USE_EMBEDDED_CONNECTION, NULL);
-
-	res =
-	    mysql_real_connect(connection, NULL, NULL, NULL, database, 0,
-			       NULL, 0);
-
-	free(datadir);
-	free(database);
-
-	if (res == NULL) {
-	    append_error(_("Cannot connect to MySQL embedded server: "));
-	    append_error(mysql_error(connection));
-	    report_error();
-	    return DB_FAILED;
-	}
-    }
-
-#endif
-
     return DB_OK;
 }
 
-int db__driver_close_database()
+int db__driver_close_database(void)
 {
     init_error();
     mysql_close(connection);	/* this will also release connection */
 
-#ifdef MESQL
-    mysql_server_end();
-#endif
-
     return DB_OK;
 }
 
-int replace_variables(char *in, char **datadir, char **database)
-{
-    *datadir = NULL;
-    *database = NULL;
-
-    /* parse/replace variables in input string */
-    char tmp[2000];
-    char **tokens;
-    int no_tokens, n;
-
-    if (!strchr(in, '/')) {	/* no path */
-	*datadir = G_store("./");
-	*database = G_store(in);
-    }
-    else {
-	tokens = G_tokenize(in, "/");
-	no_tokens = G_number_of_tokens(tokens);
-
-	G_debug(3, "no_tokens = %d", no_tokens);
-
-	tmp[0] = '\0';
-	for (n = 0; n < no_tokens - 1; n++) {
-	    if (n > 0)
-		strcat(tmp, "/");
-
-	    G_debug(3, "tokens[%d] = %s", n, tokens[n]);
-	    if (tokens[n][0] == '$') {
-		G_strchg(tokens[n], '$', ' ');
-		G_chop(tokens[n]);
-		strcat(tmp, G__getenv(tokens[n]));
-		G_debug(3, "   -> %s", G__getenv(tokens[n]));
-	    }
-	    else {
-		strcat(tmp, tokens[n]);
-	    }
-	}
-	*datadir = G_store(tmp);
-	*database = G_store(tokens[n]);
-
-	G_free_tokens(tokens);
-    }
-
-    G_debug(2, "datadir = '%s'", *datadir);
-    G_debug(2, "database = '%s'", *database);
-
-    return 1;
-}

+ 99 - 0
db/drivers/mysql/dbe.c

@@ -0,0 +1,99 @@
+
+/**********************************************************
+ * MODULE:    mysql
+ * AUTHOR(S): Radim Blazek (radim.blazek@gmail.com)
+ * PURPOSE:   MySQL database driver
+ * COPYRIGHT: (C) 2001 by the GRASS Development Team
+ *            This program is free software under the 
+ *            GNU General Public License (>=v2). 
+ *            Read the file COPYING that comes with GRASS
+ *            for details.
+ **********************************************************/
+#include <stdlib.h>
+#include <string.h>
+
+#include <grass/dbmi.h>
+#include <grass/gis.h>
+#include <grass/glocale.h>
+
+#include "globals.h"
+#include "proto.h"
+
+int db__driver_open_database(dbHandle * handle)
+{
+    char *name;
+    dbConnection default_connection;
+    MYSQL *res;
+
+    init_error();
+    db_get_connection(&default_connection);
+    name = db_get_handle_dbname(handle);
+
+    /* if name is empty use default_connection.databaseName */
+    if (strlen(name) == 0)
+	name = default_connection.databaseName;
+
+    G_debug(3, "db_driver_open_database() mysql: database definition = '%s'",
+	    name);
+
+    /* Embedded version */
+    {
+	char *datadir, *database;
+	char *server_args[4];
+	char *buf;
+
+	if (!replace_variables(name, &datadir, &database)) {
+	    append_error(_("Cannot parse MySQL embedded database name"));
+	    append_error(mysql_error(connection));
+	    report_error();
+	    return DB_FAILED;
+	}
+
+	server_args[0] = "mesql";	/* this string is not used */
+	G_asprintf(&buf, "--datadir=%s", datadir);
+	server_args[1] = buf;
+	/* With InnoDB it is very slow to close the database */
+	server_args[2] = "--skip-innodb";	/* OK? */
+	/* Without --bootstrap it complains about missing 
+	 * mysql.time_zone_leap_second table */
+	server_args[3] = "--bootstrap";	/* OK? */
+
+	if (mysql_server_init(4, server_args, NULL)) {
+	    append_error(_("Cannot initialize MySQL embedded server"));
+	    append_error(mysql_error(connection));
+	    report_error();
+	    free(datadir);
+	    free(database);
+	    return DB_FAILED;
+	}
+
+	connection = mysql_init(NULL);
+	mysql_options(connection, MYSQL_OPT_USE_EMBEDDED_CONNECTION, NULL);
+
+	res =
+	    mysql_real_connect(connection, NULL, NULL, NULL, database, 0,
+			       NULL, 0);
+
+	free(datadir);
+	free(database);
+
+	if (res == NULL) {
+	    append_error(_("Cannot connect to MySQL embedded server: "));
+	    append_error(mysql_error(connection));
+	    report_error();
+	    return DB_FAILED;
+	}
+    }
+
+    return DB_OK;
+}
+
+int db__driver_close_database(void)
+{
+    init_error();
+    mysql_close(connection);	/* this will also release connection */
+
+    mysql_server_end();
+
+    return DB_OK;
+}

+ 3 - 0
db/drivers/mysql/proto.h

@@ -13,3 +13,6 @@ void field_info(MYSQL_FIELD *, int *, int *);
 
 /* parse.c */
 int parse_conn(char *, CONNPAR *);
+
+/* replace.c */
+int replace_variables(char *, char **, char **);

+ 70 - 0
db/drivers/mysql/replace.c

@@ -0,0 +1,70 @@
+
+/**********************************************************
+ * MODULE:    mysql
+ * AUTHOR(S): Radim Blazek (radim.blazek@gmail.com)
+ * PURPOSE:   MySQL database driver
+ * COPYRIGHT: (C) 2001,2008 by the GRASS Development Team
+ *            This program is free software under the 
+ *            GNU General Public License (>=v2). 
+ *            Read the file COPYING that comes with GRASS
+ *            for details.
+ **********************************************************/
+
+#include <stdlib.h>
+#include <string.h>
+
+#include <grass/dbmi.h>
+#include <grass/gis.h>
+#include <grass/glocale.h>
+
+#include "globals.h"
+#include "proto.h"
+
+int replace_variables(char *in, char **datadir, char **database)
+{
+    *datadir = NULL;
+    *database = NULL;
+
+    /* parse/replace variables in input string */
+    char tmp[2000];
+    char **tokens;
+    int no_tokens, n;
+
+    if (!strchr(in, '/')) {	/* no path */
+	*datadir = G_store("./");
+	*database = G_store(in);
+    }
+    else {
+	tokens = G_tokenize(in, "/");
+	no_tokens = G_number_of_tokens(tokens);
+
+	G_debug(3, "no_tokens = %d", no_tokens);
+
+	tmp[0] = '\0';
+	for (n = 0; n < no_tokens - 1; n++) {
+	    if (n > 0)
+		strcat(tmp, "/");
+
+	    G_debug(3, "tokens[%d] = %s", n, tokens[n]);
+	    if (tokens[n][0] == '$') {
+		G_strchg(tokens[n], '$', ' ');
+		G_chop(tokens[n]);
+		strcat(tmp, G__getenv(tokens[n]));
+		G_debug(3, "   -> %s", G__getenv(tokens[n]));
+	    }
+	    else {
+		strcat(tmp, tokens[n]);
+	    }
+	}
+	*datadir = G_store(tmp);
+	*database = G_store(tokens[n]);
+
+	G_free_tokens(tokens);
+    }
+
+    G_debug(2, "datadir = '%s'", *datadir);
+    G_debug(2, "database = '%s'", *database);
+
+    return 1;
+}
+

+ 4 - 33
db/drivers/odbc/Makefile

@@ -1,39 +1,10 @@
 MODULE_TOPDIR = ../../..
 
-include $(MODULE_TOPDIR)/include/Make/Platform.make
-include $(MODULE_TOPDIR)/include/Make/Grass.make
-include $(MODULE_TOPDIR)/include/Make/Rules.make
+PGM = odbc
+include $(MODULE_TOPDIR)/include/Make/DB.make
 
-DRIVER=$(DBDRIVERDIR)/odbc$(EXE)
-EXTRA_INC = $(ODBCINC) -I$(MODULE_TOPDIR)/lib/db/dbmi_driver
 DEPENDENCIES = $(GISDEP)
 
-LIBES = $(DBMIDRIVERLIB) $(DBMIBASELIB) $(DBMIEXTRALIB) $(DBSTUBSLIB) $(GISLIB) $(DATETIMELIB)
+LIBES = $(DBMIDRIVERLIB) $(DBMIBASELIB) $(DBMIEXTRALIB) $(DBSTUBSLIB) $(GISLIB) $(DATETIMELIB) $(ODBCLIB)
 
-OBJS 	=  \
-	connect.o \
-	cursor.o \
-	db.o \
-	describe.o \
-	driver.o \
-	error.o \
-	execute.o \
-	fetch.o \
-	listdb.o \
-	listtab.o \
-	main.o \
-	select.o \
-	table.o \
-	create_table.o
-
-ARCH_OBJS := $(foreach obj,$(OBJS),$(OBJDIR)/$(obj))
-
-DRVDOC=$(GISBASE)/docs/html/grass-odbc.html
-
-default: $(DRIVER) $(DRVDOC)
-
-$(DRIVER): $(ARCH_OBJS)
-	$(CC) $(LDFLAGS) -o $@ $(ARCH_OBJS) $(FMODE_OBJ) $(LIBES) $(ODBCLIB) $(MATHLIB) $(XDRLIB) $(ICONVLIB)
-
-$(DRVDOC): grass-odbc.html
-	$(INSTALL_DATA) grass-odbc.html $(DRVDOC)
+default: dbmi

+ 5 - 21
db/drivers/ogr/Makefile

@@ -2,28 +2,12 @@ MODULE_TOPDIR = ../../..
 
 DEPENDENCIES = $(GISDEP)
 
-include $(MODULE_TOPDIR)/include/Make/Platform.make
-include $(MODULE_TOPDIR)/include/Make/Grass.make
-include $(MODULE_TOPDIR)/include/Make/Rules.make
+PGM = ogr
+include $(MODULE_TOPDIR)/include/Make/DB.make
 
-DRIVER=$(DBDRIVERDIR)/ogr$(EXE)
-
-LIBES = $(DBMIDRIVERLIB) $(DBMIBASELIB) $(DBMIEXTRALIB) $(SQLPLIB) $(DBSTUBSLIB) \
+LIBES = $(DBMIDRIVERLIB) $(DBMIBASELIB) $(DBMIEXTRALIB) $(DBSTUBSLIB) \
 	$(GISLIB) $(DATETIMELIB) $(GDALLIBS)
 EXTRA_CFLAGS = $(GDALCFLAGS) $(TCLINCDIR) $(TKINCDIR)
-EXTRA_INC = -I$(MODULE_TOPDIR)/lib/db/dbmi_driver
-
-DRVDOC=$(GISBASE)/docs/html/grass-ogr.html
-
-OBJS = $(subst .c,.o,$(wildcard *.c))
-
-ARCH_OBJS := $(foreach obj,$(OBJS),$(OBJDIR)/$(obj))
-
-default: $(DRIVER) $(DRVDOC)
-
-$(DRIVER): $(ARCH_OBJS)
-	$(CC) $(LDFLAGS) -o $@ $(ARCH_OBJS) $(PQLIBPATH) $(FMODE_OBJ) $(LIBES) $(TCLTKLIBPATH) $(TCLTKLIBS) \
-		$(MATHLIB) $(XDRLIB)
+EXTRA_LDFLAGS = $(PQLIBPATH) $(TCLTKLIBPATH) $(TCLTKLIBS)
 
-$(DRVDOC): grass-ogr.html
-	$(INSTALL_DATA) grass-ogr.html $(DRVDOC)
+default: dbmi

+ 5 - 21
db/drivers/postgres/Makefile

@@ -2,29 +2,13 @@ MODULE_TOPDIR = ../../..
 
 DEPENDENCIES = $(GISDEP)
 
-include $(MODULE_TOPDIR)/include/Make/Platform.make
-include $(MODULE_TOPDIR)/include/Make/Grass.make
-include $(MODULE_TOPDIR)/include/Make/Rules.make
+PGM = pg
+include $(MODULE_TOPDIR)/include/Make/DB.make
 
-DRIVER=$(DBDRIVERDIR)/pg$(EXE)
-
-LIBES = $(DBMIDRIVERLIB) $(DBMIBASELIB) $(DBMIEXTRALIB) $(SQLPLIB) $(DBSTUBSLIB) \
+LIBES = $(DBMIDRIVERLIB) $(DBMIBASELIB) $(DBMIEXTRALIB) $(DBSTUBSLIB) \
 	$(GISLIB) $(DATETIMELIB) $(PQLIB)
 
 EXTRA_CFLAGS = $(PQINCPATH)
-EXTRA_INC = -I$(MODULE_TOPDIR)/lib/db/dbmi_driver
-
-OBJS = $(subst .c,.o,$(wildcard *.c))
-
-ARCH_OBJS := $(foreach obj,$(OBJS),$(OBJDIR)/$(obj))
-
-DRVDOC=$(GISBASE)/docs/html/grass-pg.html
-
-default: $(DRIVER) $(DRVDOC)
-
-$(DRIVER): $(ARCH_OBJS)
-	$(CC) $(LDFLAGS) -o $@ $(ARCH_OBJS) $(FMODE_OBJ) $(PQLIBPATH) $(LIBES) \
-		$(MATHLIB) $(XDRLIB)
+EXTRA_LDFLAGS = $(PQLIBPATH)
 
-$(DRVDOC): grass-pg.html
-	$(INSTALL_DATA) grass-pg.html $(DRVDOC)
+default: dbmi

+ 4 - 20
db/drivers/sqlite/Makefile

@@ -2,29 +2,13 @@ MODULE_TOPDIR = ../../..
 
 DEPENDENCIES = $(GISDEP)
 
-include $(MODULE_TOPDIR)/include/Make/Platform.make
-include $(MODULE_TOPDIR)/include/Make/Grass.make
-include $(MODULE_TOPDIR)/include/Make/Rules.make
-
-DRIVER=$(DBDRIVERDIR)/sqlite$(EXE)
+PGM = sqlite
+include $(MODULE_TOPDIR)/include/Make/DB.make
 
 LIBES = $(DBMIDRIVERLIB) $(DBMIBASELIB) $(DBMIEXTRALIB) $(DBSTUBSLIB) \
 	$(GISLIB) $(DATETIMELIB) $(SQLITELIB)
 
 EXTRA_CFLAGS = $(SQLITEINCPATH) 
-EXTRA_INC = -I$(MODULE_TOPDIR)/lib/db/dbmi_driver
-
-OBJS = $(subst .c,.o,$(wildcard *.c))
-
-ARCH_OBJS := $(foreach obj,$(OBJS),$(OBJDIR)/$(obj))
-
-DRVDOC=$(GISBASE)/docs/html/grass-sqlite.html
-
-default: $(DRIVER) $(DRVDOC)
-
-$(DRIVER): $(ARCH_OBJS)
-	$(CC) $(LDFLAGS) -o $@ $(ARCH_OBJS) $(FMODE_OBJ) $(SQLITELIBPATH) $(LIBES) \
-		$(MATHLIB) $(XDRLIB)
+EXTRA_LDFLAGS = $(SQLITELIBPATH)
 
-$(DRVDOC): grass-sqlite.html
-	$(INSTALL_DATA) grass-sqlite.html $(DRVDOC)
+default: dbmi

+ 0 - 1
doc/Makefile

@@ -6,4 +6,3 @@ include $(MODULE_TOPDIR)/include/Make/Dir.make
 
 default: htmldir
 
-clean: cleansubdirs

+ 0 - 1
general/Makefile

@@ -28,4 +28,3 @@ include $(MODULE_TOPDIR)/include/Make/Dir.make
 
 default: parsubdirs
 
-clean: cleansubdirs

+ 0 - 1
general/manage/Makefile

@@ -10,5 +10,4 @@ include $(MODULE_TOPDIR)/include/Make/Dir.make
 
 default: subdirs
 
-clean: cleansubdirs
 

+ 5 - 6
general/manage/lib/Makefile

@@ -1,16 +1,15 @@
 MODULE_TOPDIR = ../../..
 
-EXTRA_LIBS=$(GISLIB) $(VECTLIB) $(G3DLIB)
-
 LIB_NAME = $(MANAGE_LIBNAME)
+DEPENDENCIES = $(GISDEP) $(VECTDEP) $(G3DDEP)
+
+include $(MODULE_TOPDIR)/include/Make/Lib.make
 
-LOCAL_HEADERS = $(wildcard *.h) ../list.h
+LOCAL_HEADERS := $(wildcard *.h) ../list.h
 
 EXTRA_INC = -I.. $(VECT_INC)
 EXTRA_CFLAGS = $(VECT_CFLAGS)
-DEPENDENCIES = $(GISDEP) $(VECTDEP) $(G3DDEP)
-
-include $(MODULE_TOPDIR)/include/Make/Lib.make
+EXTRA_LIBS = $(GISLIB) $(VECTLIB) $(G3DLIB)
 
 default: stlib $(ETC)/element_list
 

+ 0 - 4
gui/Makefile

@@ -2,10 +2,6 @@ MODULE_TOPDIR = ..
 
 SUBDIRS = icons images scripts xml tcltk wxpython
 
-include $(MODULE_TOPDIR)/include/Make/Platform.make
-
 include $(MODULE_TOPDIR)/include/Make/Dir.make
 
 default: parsubdirs
-
-clean: cleansubdirs

+ 0 - 1
gui/tcltk/Makefile

@@ -6,5 +6,4 @@ include $(MODULE_TOPDIR)/include/Make/Dir.make
 
 default: parsubdirs
 
-clean: cleansubdirs
 

+ 12 - 7
gui/tcltk/gis.m/Makefile

@@ -6,13 +6,18 @@ include $(MODULE_TOPDIR)/include/Make/Script.make
 
 default: script install_scripts
 
-install_scripts:
-	if [ ! -d $(GISBASE)/etc/gm ] ; then $(MKDIR) $(GISBASE)/etc/gm; fi
-	for file in *.tcl ; do $(INSTALL) $$file $(GISBASE)/etc/gm/ ; done
-	for file in *.gif ; do $(INSTALL_DATA) $$file $(GISBASE)/etc/gm/ ; done
-	for file in docs/gm_*.html ; do $(INSTALL_DATA) $$file $(GISBASE)/docs/html/ ; done
-	for file in docs/gm_*.png ; do $(INSTALL_DATA) $$file $(GISBASE)/docs/html/ ; done
-	for file in docs/gm_*.jpg ; do $(INSTALL_DATA) $$file $(GISBASE)/docs/html/ ; done
+TCLFILES = $(patsubst %,$(ETC)/gm/%,$(wildcard *.tcl))
+GIFFILES = $(patsubst %,$(ETC)/gm/%,$(wildcard *.gif))
+DOCFILES = $(patsubst docs/%,$(HTMLDIR)/%,$(wildcard docs/gm_*.*))
+
+$(HTMLDIR)/%: docs/%
+	$(INSTALL_DATA) $< $@
+
+$(ETC)/gm/%: %
+	-test -d $(ETC)/gm || $(MKDIR) $(ETC)/gm
+	$(INSTALL_DATA) $< $@
+
+install_scripts: $(TCLFILES) $(GIFFILES) $(DOCFILES)
 
 $(BIN)/$(PGM).bat: $(PGM).bat
 	$(INSTALL_DATA) $< $@

+ 1 - 3
gui/wxpython/Makefile

@@ -2,7 +2,7 @@ MODULE_TOPDIR = ../..
 
 SUBDIRS = docs scripts
 
-include $(MODULE_TOPDIR)/include/Make/Platform.make
+include $(MODULE_TOPDIR)/include/Make/Vars.make
 
 #compile if wxWidgets, Python, CXX present
 ifneq ($(USE_WXWIDGETS),)
@@ -35,5 +35,3 @@ install_scripts:
 	$(INSTALL_DATA) gis_set.py wxgui.py README $(ETCDIR)/
 	$(INSTALL) scripts/* $(ETCDIR)/scripts/	
 	$(INSTALL) wxgui $(ETCDIR)/scripts/
-
-clean: cleansubdirs

+ 2 - 4
gui/wxpython/docs/Makefile

@@ -1,12 +1,10 @@
 MODULE_TOPDIR = ../../..
 
+include $(MODULE_TOPDIR)/include/Make/Other.make
+
 FILES = wxGUI \
 	wxGUI.Vector_Digitizing_Tool \
 	wxGUI.Attribute_Table_Manager \
 	wxGUI.Nviz
 
-include $(MODULE_TOPDIR)/include/Make/Platform.make
-include $(MODULE_TOPDIR)/include/Make/Grass.make
-include $(MODULE_TOPDIR)/include/Make/Rules.make
-
 default: $(patsubst %,$(HTMLDIR)/%.html,$(FILES))

+ 0 - 2
gui/wxpython/scripts/Makefile

@@ -1,6 +1,5 @@
 MODULE_TOPDIR = ../../..
 
-include $(MODULE_TOPDIR)/include/Make/Platform.make
 include $(MODULE_TOPDIR)/include/Make/Dir.make
 
 ETCDIR = $(ETC)/gui/scripts
@@ -11,4 +10,3 @@ install_scripts:
 	$(MKDIR) $(ETCDIR)
 	$(INSTALL) d.rast3d $(ETCDIR)/
 
-clean: cleansubdirs

+ 2 - 3
imagery/Makefile

@@ -1,5 +1,7 @@
 MODULE_TOPDIR = ..
 
+include $(MODULE_TOPDIR)/include/Make/Vars.make
+
 SUBDIRS = \
 	i.atcorr \
 	i.cluster \
@@ -16,8 +18,6 @@ SUBDIRS = \
 	i.pca \
 	i.cca
 
-include $(MODULE_TOPDIR)/include/Make/Platform.make
-
 FFTWBASED = i.fft i.ifft i.zc
 
 #compile if FFTW present:
@@ -33,4 +33,3 @@ default: htmldir
 
 htmldir: parsubdirs
 
-clean: cleansubdirs

+ 0 - 1
imagery/i.ortho.photo/Makefile

@@ -19,5 +19,4 @@ $(SUBDIRS1): libes
 
 default: parsubdirs
 
-clean: cleansubdirs
 

+ 0 - 1
imagery/i.smap/Makefile

@@ -9,7 +9,6 @@ include $(MODULE_TOPDIR)/include/Make/Dir.make
 
 default: parsubdirs
 
-clean: cleansubdirs
 
 shapiro: bouman
 

+ 50 - 0
include/Make/Compile.make

@@ -0,0 +1,50 @@
+
+# for i18N support
+NLS_CFLAGS = -DPACKAGE=\"$(PACKAGE)\"
+
+LINK = $(CC)
+
+linker_x = $(1) $(LDFLAGS) $(EXTRA_LDFLAGS) -o $@ $(filter %.o,$^) $(FMODE_OBJ) $(LIBES) $(EXTRA_LIBS) $(MATHLIB) $(XDRLIB)
+linker_c = $(call linker_x,$(CC))
+linker_cxx = $(call linker_x,$(CXX))
+linker = $(call linker_x,$(LINK))
+
+compiler_x = $(1) $(2) $(EXTRA_CFLAGS) $(NLS_CFLAGS) $(DEFS) $(EXTRA_INC) $(INC) -o $@ -c $<
+compiler_c = $(call compiler_x,$(CC),$(CFLAGS))
+compiler_cxx = $(call compiler_x,$(CXX),$(CXXFLAGS))
+compiler = $(call compiler_x,$(CC))
+
+# default cc rules
+ifeq ($(BROKEN_MAKE),)
+
+$(OBJDIR)/%.o : %.c $(LOCAL_HEADERS) $(EXTRA_HEADERS) | $(OBJDIR)
+	$(call compiler_c)
+
+$(OBJDIR)/%.o : %.cc $(LOCAL_HEADERS) $(EXTRA_HEADERS) | $(OBJDIR)
+	$(call compiler_cxx)
+
+$(OBJDIR)/%.o : %.cpp $(LOCAL_HEADERS) $(EXTRA_HEADERS) | $(OBJDIR)
+	$(call compiler_cxx)
+
+else
+
+$(OBJDIR)/%.o : %.c $(LOCAL_HEADERS) $(EXTRA_HEADERS)
+	$(MAKE) $(OBJDIR)
+	$(call compiler_c)
+
+$(OBJDIR)/%.o : %.cc $(LOCAL_HEADERS) $(EXTRA_HEADERS)
+	$(MAKE) $(OBJDIR)
+	$(call compiler_cxx)
+
+$(OBJDIR)/%.o : %.cpp $(LOCAL_HEADERS) $(EXTRA_HEADERS)
+	$(MAKE) $(OBJDIR)
+	$(call compiler_cxx)
+
+endif
+
+# default parser generation rules, include prefix for files/vars
+%.yy.c: %.l
+	$(LEX) $(LFLAGS) $< > $@
+
+%.output %.tab.h %.tab.c: %.y
+	$(YACC) -b$* $(YFLAGS) $<

+ 20 - 0
include/Make/DB.make

@@ -0,0 +1,20 @@
+
+# common dependencies and rules for building DBMI driver
+
+PACKAGE = "grassmods"
+
+include $(MODULE_TOPDIR)/include/Make/Vars.make
+include $(MODULE_TOPDIR)/include/Make/Rules.make
+include $(MODULE_TOPDIR)/include/Make/Html.make
+include $(MODULE_TOPDIR)/include/Make/Compile.make
+
+EXTRA_INC += -I$(MODULE_TOPDIR)/lib/db/dbmi_driver
+
+dbmi: $(DBDRIVERDIR)/$(PGM)$(EXE) db_html
+
+db_html: $(HTMLDIR)/grass-$(PGM).html
+
+$(DBDRIVERDIR)/$(PGM)$(EXE): $(ARCH_OBJS) $(DEPENDENCIES)
+	$(call linker)
+
+.PHONY: dbmi db_html

+ 4 - 2
include/Make/Dir.make

@@ -1,9 +1,9 @@
 
 # common dependencies and rules for building subdirs
 
-include $(MODULE_TOPDIR)/include/Make/Platform.make
-include $(MODULE_TOPDIR)/include/Make/Grass.make
+include $(MODULE_TOPDIR)/include/Make/Vars.make
 include $(MODULE_TOPDIR)/include/Make/Rules.make
+include $(MODULE_TOPDIR)/include/Make/Html.make
 
 subdirs:
 	@list='$(SUBDIRS)'; \
@@ -19,6 +19,8 @@ cleansubdirs:
 	    $(MAKE) -C $$subdir clean; \
 	done
 
+clean: cleansubdirs
+
 htmldir: html
 
 .PHONY: subdirs cleansubdirs parsubdirs htmldir $(SUBDIRS)

+ 0 - 1
include/Make/Doxygen.make

@@ -1,5 +1,4 @@
 # common dependencies and rules for building libraries
-include $(MODULE_TOPDIR)/include/Make/Platform.make
 
 DOXINPUT=$(DOXNAME)lib.dox
 DOXOUTPUT=$(DOXNAME)lib

+ 5 - 4
include/Make/Etc.make

@@ -5,13 +5,14 @@ PACKAGE = "grassmods"
 
 HTMLSRC = $(ETC)/$(PGM)$(EXE)
 
-include $(MODULE_TOPDIR)/include/Make/Platform.make
-include $(MODULE_TOPDIR)/include/Make/Grass.make
+include $(MODULE_TOPDIR)/include/Make/Vars.make
 include $(MODULE_TOPDIR)/include/Make/Rules.make
+include $(MODULE_TOPDIR)/include/Make/Html.make
+include $(MODULE_TOPDIR)/include/Make/Compile.make
 
 etc: $(ETC)/$(PGM)$(EXE) html
 
-$(ETC)/$(PGM)$(EXE): $(ARCH_CMD_OBJS) $(DEPENDENCIES) 
-	$(LINK) $(LDFLAGS) $(XTRA_LDFLAGS) -o $@ $(ARCH_CMD_OBJS) $(FMODE_OBJ) $(LIBES) $(MATHLIB) $(XDRLIB)
+$(ETC)/$(PGM)$(EXE): $(ARCH_OBJS) $(DEPENDENCIES) 
+	$(call linker)
 
 .PHONY: etc

+ 10 - 52
include/Make/Grass.make

@@ -51,6 +51,8 @@ BIN             = $(ARCH_DISTDIR)/bin
 ETC             = $(ARCH_DISTDIR)/etc
 DRIVERDIR       = $(ARCH_DISTDIR)/driver
 DBDRIVERDIR     = $(ARCH_DISTDIR)/driver/db
+DOCSDIR         = $(ARCH_DISTDIR)/docs
+HTMLDIR         = $(ARCH_DISTDIR)/docs/html
 
 FONTDIR         = $(ARCH_DISTDIR)/fonts
 
@@ -71,6 +73,12 @@ ifdef MINGW
   FMODE_OBJ = $(MODULE_TOPDIR)/lib/gis/$(OBJDIR)/fmode.o
 endif
 
+# lexical analyzer and default options
+LFLAGS      = -d -i -s -t
+
+# parser generator and default options
+YFLAGS      = -d -v -t
+
 ##################### library names #####################################
 
 ARRAYSTATS_LIBNAME        = grass_arraystats
@@ -172,7 +180,7 @@ LRS_LIBNAME           = grass_lrs
 
 ##################### library switches ##################################
 
-ARRAYSTATSLIB      = -l$(ARRAYSTATS_LIBNAME) $(GISLIB) 
+ARRAYSTATSLIB = -l$(ARRAYSTATS_LIBNAME) $(GISLIB) 
 BITMAPLIB     = -l$(BITMAP_LIBNAME) $(LINKMLIB) 
 BTREELIB      = -l$(BTREE_LIBNAME)
 CLUSTERLIB    = -l$(CLUSTER_LIBNAME) $(IMAGERYLIB) $(GISLIB)
@@ -185,7 +193,7 @@ DSPFLIB       = -l$(DSPF_LIBNAME)
 DRIVERLIB     = -l$(DRIVER_LIBNAME) $(GISLIB) $(FTLIB) $(ICONVLIB) 
 PNGDRIVERLIB  = -l$(PNGDRIVER_LIBNAME) $(DRIVERLIB) $(GISLIB) $(PNGLIB) 
 PSDRIVERLIB   = -l$(PSDRIVER_LIBNAME) $(DRIVERLIB) $(GISLIB) 
-CAIRODRIVERLIB = -l$(CAIRODRIVER_LIBNAME) $(DRIVERLIB) $(GISLIB)
+CAIRODRIVERLIB= -l$(CAIRODRIVER_LIBNAME) $(DRIVERLIB) $(GISLIB)
 HTMLDRIVERLIB = -l$(HTMLDRIVER_LIBNAME) $(DRIVERLIB) $(GISLIB)
 EDITLIB       = -l$(EDIT_LIBNAME) $(GISLIB) $(VASKLIB) 
 G3DLIB        = -l$(G3D_LIBNAME) $(GISLIB) 
@@ -364,53 +372,3 @@ SITESDEP    = $(ARCH_LIBDIR)/$(LIB_PREFIX)$(SITES_LIBNAME)$(LIB_SUFFIX)
 # LRS
 LRSDEP      = $(ARCH_LIBDIR)/$(LIB_PREFIX)$(LRS_LIBNAME)$(LIB_SUFFIX)
 
-##################### rules #############################################
-# first found target
-first: pre default
-	@if test -n "$(INST_NOW)" ; then \
-		$(MAKE) inst_now ; \
-	fi
-
-# This helps compile and install modules directly into $(INST_DIR)
-# without having to install whole distribution even after modifying only
-# one module. It will update both $(GRASS_HOME)/dist.$(ARCH) and $(INST_DIR).
-# Usage:
-#	INST_NOW=y make
-# alias gmake='INST_NOW=y make' will be useful.
-ifdef INST_NOW
-ARCH_DISTDIR = $(INST_DIR)
-ARCH_BINDIR = $(UNIX_BIN)
-endif
-
-inst_now:
-	INST_NOW= $(MAKE)
-
-# create platform dirs 
-pre: $(ARCH_BINDIR) $(ARCH_INCDIR) $(ARCH_LIBDIR) \
-	$(BIN) $(ETC) \
-	$(DRIVERDIR) $(DBDRIVERDIR) $(FONTDIR)
-
-$(ARCH_BINDIR):
-	mkdir -p $(ARCH_BINDIR)
-
-$(ARCH_INCDIR):
-	mkdir -p $(ARCH_INCDIR)
-
-$(ARCH_LIBDIR):
-	mkdir -p $(ARCH_LIBDIR)
-
-$(BIN):
-	mkdir -p $(BIN)
-
-$(ETC):
-	mkdir -p $(ETC)
-
-$(DRIVERDIR):
-	mkdir -p $(DRIVERDIR)
-
-$(DBDRIVERDIR):
-	mkdir -p $(DBDRIVERDIR)
-
-$(FONTDIR):
-	mkdir -p $(FONTDIR)
-

+ 0 - 3
include/Make/Html.make

@@ -1,6 +1,3 @@
-#NOTE: parts of the header are generated in ../../lib/gis/parser.c
-
-HTMLDIR = $(ARCH_DISTDIR)/docs/html
 
 # generic html rules for all commands
 

+ 6 - 11
include/Make/Lib.make

@@ -4,21 +4,16 @@
 #for i18N support
 PACKAGE ="grasslibs"
 
-include $(MODULE_TOPDIR)/include/Make/Platform.make
-include $(MODULE_TOPDIR)/include/Make/Grass.make
-
-ifndef LIB_OBJS
-LIB_OBJS := $(subst .c,.o,$(wildcard *.c))
-endif
-
-ARCH_LIB_OBJS := $(foreach obj,$(LIB_OBJS),$(OBJDIR)/$(obj))
+include $(MODULE_TOPDIR)/include/Make/Vars.make
+include $(MODULE_TOPDIR)/include/Make/Rules.make
+include $(MODULE_TOPDIR)/include/Make/Html.make
+include $(MODULE_TOPDIR)/include/Make/Compile.make
 
 STLIB_NAME = $(LIB_NAME)
-STLIB_OBJS = $(ARCH_LIB_OBJS)
+STLIB_OBJS = $(ARCH_OBJS)
 SHLIB_NAME = $(LIB_NAME)
-SHLIB_OBJS = $(ARCH_LIB_OBJS)
+SHLIB_OBJS = $(ARCH_OBJS)
 
-include $(MODULE_TOPDIR)/include/Make/Rules.make
 include $(MODULE_TOPDIR)/include/Make/Stlib.make
 include $(MODULE_TOPDIR)/include/Make/Shlib.make
 

+ 5 - 4
include/Make/Module.make

@@ -5,13 +5,14 @@ PACKAGE = "grassmods"
 
 HTMLSRC = $(BIN)/$(PGM)$(EXE)
 
-include $(MODULE_TOPDIR)/include/Make/Platform.make
-include $(MODULE_TOPDIR)/include/Make/Grass.make
+include $(MODULE_TOPDIR)/include/Make/Vars.make
 include $(MODULE_TOPDIR)/include/Make/Rules.make
+include $(MODULE_TOPDIR)/include/Make/Html.make
+include $(MODULE_TOPDIR)/include/Make/Compile.make
 
 cmd: $(BIN)/$(PGM)$(EXE) html
 
-$(BIN)/$(PGM)$(EXE): $(ARCH_CMD_OBJS) $(DEPENDENCIES)
-	$(LINK) $(LDFLAGS) $(XTRA_LDFLAGS) -o $@ $(ARCH_CMD_OBJS) $(FMODE_OBJ) $(LIBES) $(MATHLIB) $(XDRLIB)
+$(BIN)/$(PGM)$(EXE): $(ARCH_OBJS) $(DEPENDENCIES)
+	$(call linker)
 
 .PHONY: cmd

+ 4 - 3
include/Make/Multi.make

@@ -1,9 +1,10 @@
 
 PACKAGE = "grassmods"
 
-include $(MODULE_TOPDIR)/include/Make/Platform.make
-include $(MODULE_TOPDIR)/include/Make/Grass.make
+include $(MODULE_TOPDIR)/include/Make/Vars.make
 include $(MODULE_TOPDIR)/include/Make/Rules.make
+include $(MODULE_TOPDIR)/include/Make/Html.make
+include $(MODULE_TOPDIR)/include/Make/Compile.make
 
 PROGFILES = $(patsubst %,$(BIN)/%$(EXE),$(PROGRAMS))
 HTMLFILES = $(patsubst %,$(HTMLDIR)/%.html,$(PROGRAMS))
@@ -15,7 +16,7 @@ progs: $(PROGFILES)
 htmlmulti: $(HTMLFILES)
 
 $(BIN)/%$(EXE): $(DEPENDENCIES)
-	$(LINK) $(LDFLAGS) $(XTRA_LDFLAGS) -o $@ $(filter %.o,$^) $(FMODE_OBJ) $(LIBES) $(MATHLIB) $(XDRLIB)
+	$(call linker)
 
 define objs_rule
 $(BIN)/$(1)$(EXE): $$(patsubst %.o,$(OBJDIR)/%.o,$$($$(subst .,_,$(1)_OBJS)))

+ 4 - 0
include/Make/Other.make

@@ -0,0 +1,4 @@
+include $(MODULE_TOPDIR)/include/Make/Vars.make
+include $(MODULE_TOPDIR)/include/Make/Rules.make
+include $(MODULE_TOPDIR)/include/Make/Html.make
+

+ 10 - 58
include/Make/Rules.make

@@ -1,75 +1,27 @@
-# lexical analyzer and default options
-LEXFLAGS= -d -i -s -t
 
-# parser generator and default options
-YACCFLAGS = -d -v -t
+# first found target
+first: pre default
 
-ifndef LOCAL_HEADERS
-LOCAL_HEADERS = $(wildcard *.h)
-endif
+# create platform dirs 
+ARCH_DIRS = $(ARCH_DISTDIR) $(ARCH_BINDIR) $(ARCH_INCDIR) $(ARCH_LIBDIR) \
+	$(BIN) $(ETC) \
+	$(DRIVERDIR) $(DBDRIVERDIR) $(FONTDIR) $(DOCSDIR) $(HTMLDIR)
 
-# for i18N support
-DEFS=-DPACKAGE=\"$(PACKAGE)\"
-NLS_CFLAGS=$(DEFS)
+pre: $(ARCH_DIRS)
 
-MOD_OBJS := $(subst .c,.o,$(wildcard *.c)) $(subst .cpp,.o,$(wildcard *.cpp)) $(subst .cc,.o,$(wildcard *.cc))
-CMD_OBJS = $(MOD_OBJS)
-ARCH_CMD_OBJS = $(patsubst %.o,$(OBJDIR)/%.o,$(CMD_OBJS))
+$(ARCH_DIRS):
+	$(MKDIR) $@
 
 $(OBJDIR):
 	-test -d $(OBJDIR) || $(MKDIR) $(OBJDIR)
 
-ifndef BROKEN_MAKE
-ifneq ($(MAKE_VERSION),3.81)
-BROKEN_MAKE=1
-endif
-endif
-
-LINK = $(CC)
-
-# default cc rules
-ifeq ($(BROKEN_MAKE),)
-$(OBJDIR)/%.o : %.c $(LOCAL_HEADERS) $(EXTRA_HEADERS) | $(OBJDIR)
-	$(CC) $(CFLAGS) $(EXTRA_CFLAGS) $(NLS_CFLAGS) $(EXTRA_INC) $(INC) -o $@ -c $<
-
-$(OBJDIR)/%.o : %.cc $(LOCAL_HEADERS) $(EXTRA_HEADERS) | $(OBJDIR)
-	$(CXX) $(CXXFLAGS) $(EXTRA_CFLAGS) $(NLS_CFLAGS) $(EXTRA_INC) $(INC) -o $@ -c $<
-
-$(OBJDIR)/%.o : %.cpp $(LOCAL_HEADERS) $(EXTRA_HEADERS) | $(OBJDIR)
-	$(CXX) $(CXXFLAGS) $(EXTRA_CFLAGS) $(NLS_CFLAGS) $(EXTRA_INC) $(INC) -o $@ -c $<
-else
-$(OBJDIR)/%.o : %.c $(LOCAL_HEADERS) $(EXTRA_HEADERS)
-	$(MAKE) $(OBJDIR)
-	$(CC) $(CFLAGS) $(EXTRA_CFLAGS) $(NLS_CFLAGS) $(EXTRA_INC) $(INC) -o $@ -c $<
-
-$(OBJDIR)/%.o : %.cc $(LOCAL_HEADERS) $(EXTRA_HEADERS)
-	$(MAKE) $(OBJDIR)
-	$(CXX) $(CXXFLAGS) $(EXTRA_CFLAGS) $(NLS_CFLAGS) $(EXTRA_INC) $(INC) -o $@ -c $<
-
-$(OBJDIR)/%.o : %.cpp $(LOCAL_HEADERS) $(EXTRA_HEADERS)
-	$(MAKE) $(OBJDIR)
-	$(CXX) $(CXXFLAGS) $(EXTRA_CFLAGS) $(NLS_CFLAGS) $(EXTRA_INC) $(INC) -o $@ -c $<
-endif
-
-# default parser generation rules, include prefix for files/vars
-%.yy.c: %.l
-	$(LEX) -P$* $(LEXFLAGS) $*.l | \
-	$(SED) -e 's/unistd.h/limits.h/g' \
-	> $@
-
-%.tab.h %.tab.c: %.y
-	$(YACC) -b$* -p$* $(YACCFLAGS) $<
-
-
 # default clean rules
 clean:
 	-rm -rf $(OBJDIR) $(EXTRA_CLEAN_DIRS)
-	-rm -f $(EXTRA_CLEAN_FILES) *.tmp.html
+	-rm -f $(EXTRA_CLEAN_FILES) *.tab.[ch] *.yy.c *.output *.backup *.tmp.html
 	-if [ "$(CLEAN_SUBDIRS)" != "" ] ; then \
 		for dir in $(CLEAN_SUBDIRS) ; do \
 			$(MAKE) -C $$dir clean ; \
 		done ; \
 	fi
 
-# HTML page rules:
-include $(MODULE_TOPDIR)/include/Make/Html.make

+ 2 - 2
include/Make/Script.make

@@ -8,9 +8,9 @@ SCRIPT = $(SCRIPTDIR)/$(PGM)
 
 HTMLSRC = $(SCRIPT)
 
-include $(MODULE_TOPDIR)/include/Make/Platform.make
-include $(MODULE_TOPDIR)/include/Make/Grass.make
+include $(MODULE_TOPDIR)/include/Make/Vars.make
 include $(MODULE_TOPDIR)/include/Make/Rules.make
+include $(MODULE_TOPDIR)/include/Make/Html.make
 
 SCRIPT_ACTIONS = $(SCRIPT) html scriptstrings
 ifdef MINGW

+ 1 - 1
include/Make/Shlib.make

@@ -7,7 +7,7 @@ CXXFLAGS += $(SHLIB_CFLAGS)
 LDFLAGS += $(SHLIB_LDFLAGS)
 
 $(SHLIB): $(SHLIB_OBJS)
-	$(SHLIB_LD) -o $@ $(LDFLAGS) $^ $(EXTRA_LIBS) && \
+	$(SHLIB_LD) -o $@ $(LDFLAGS) $^ $(LIBES) $(EXTRA_LIBS) && \
 	(cd $(ARCH_LIBDIR); ln -f -s $(notdir $@) $(patsubst %.$(GRASS_VERSION_NUMBER)$(SHLIB_SUFFIX),%$(SHLIB_SUFFIX),$@))
 
 shlib: $(SHLIB)

+ 32 - 0
include/Make/Vars.make

@@ -0,0 +1,32 @@
+include $(MODULE_TOPDIR)/include/Make/Platform.make
+include $(MODULE_TOPDIR)/include/Make/Grass.make
+
+ifndef BROKEN_MAKE
+ifneq ($(MAKE_VERSION),3.81)
+BROKEN_MAKE=1
+endif
+endif
+
+C_SOURCES    := $(wildcard *.c)
+CC_SOURCES   := $(wildcard *.cc)
+CPP_SOURCES  := $(wildcard *.cpp)
+LEX_SOURCES  := $(wildcard *.l)
+YACC_SOURCES := $(wildcard *.y)
+
+AUTO_OBJS := \
+	$(subst .c,.o,$(C_SOURCES)) \
+	$(subst .cc,.o,$(CC_SOURCES)) \
+	$(subst .cpp,.o,$(CPP_SOURCES)) \
+	$(subst .l,.yy.o,$(LEX_SOURCES)) \
+	$(subst .y,.tab.o,$(YACC_SOURCES))
+
+ifndef MOD_OBJS
+MOD_OBJS = $(AUTO_OBJS)
+endif
+
+ARCH_OBJS = $(patsubst %.o,$(OBJDIR)/%.o,$(MOD_OBJS))
+
+LOCAL_HEADERS := $(wildcard *.h)
+
+LINK = $(CC)
+

+ 3 - 12
lib/Makefile

@@ -1,5 +1,7 @@
 MODULE_TOPDIR = ..
 
+include $(MODULE_TOPDIR)/include/Make/Vars.make
+
 #order is relevant:
 SUBDIRS = \
 	datetime \
@@ -36,19 +38,10 @@ SUBDIRS = \
 	cdhc \
 	stats \
 	arraystats \
-	python
-
-include $(MODULE_TOPDIR)/include/Make/Platform.make
-
-OPENGLBASED = \
+	python \
 	ogsf \
 	nviz
 
-#compile if OPENGLBASED present:
-ifneq ($(strip $(OPENGLLIB)),)
-    SUBDIRS += $(OPENGLBASED)
-endif
-
 #compile if C++ compiler present:
 ifneq ($(strip $(CXX)),)
     SUBDIRS += iostream
@@ -73,5 +66,3 @@ headers:
 	for file in ../include/vect/*.h ; do $(INSTALL_DATA) $$file $(GISBASE)/include/grass/vect/ ; done
 	for file in ../include/iostream/*.h ; do $(INSTALL_DATA) $$file $(GISBASE)/include/grass/iostream/ ; done
 	for file in ../include/Make/*.make ; do $(INSTALL_DATA) $$file $(GISBASE)/include/Make/ ; done
-
-clean: cleansubdirs

+ 5 - 5
lib/bitmap/Makefile

@@ -1,15 +1,15 @@
 MODULE_TOPDIR = ../..
 
-EXTRA_LIBS=$(LINKMLIB)
+include $(MODULE_TOPDIR)/include/Make/Vars.make
 
-LIB_NAME = $(BITMAP_LIBNAME)
+MOD_OBJS := bitmap.o sparse.o
 
-LIB_OBJS = \
-	bitmap.o\
-	sparse.o
+LIB_NAME = $(BITMAP_LIBNAME)
 
 include $(MODULE_TOPDIR)/include/Make/Lib.make
 
+EXTRA_LIBS = $(LINKMLIB)
+
 default: lib
 
 

+ 4 - 12
lib/btree/Makefile

@@ -1,19 +1,11 @@
-
 MODULE_TOPDIR = ../..
 
-LIB_NAME = $(BTREE_LIBNAME)
+include $(MODULE_TOPDIR)/include/Make/Vars.make
 
-LIB_OBJS = \
-	create.o\
-	find.o\
-	free.o\
-	next.o\
-	rewind.o\
-	update.o
+MOD_OBJS := $(filter-out try.o,$(AUTO_OBJS))
+
+LIB_NAME = $(BTREE_LIBNAME)
 
 include $(MODULE_TOPDIR)/include/Make/Lib.make
 
 default: lib
-
-try: $(OBJDIR)/try.o $(BTREELIB)
-	$(CC) $(LDFLAGS) $(OBJDIR)/try.o $(BTREELIB) -o $(OBJDIR)/try

lib/btree/try.c → lib/btree/test/try.c


+ 0 - 11
lib/cdhc/Makefile

@@ -2,17 +2,6 @@ MODULE_TOPDIR = ../..
 
 LIB_NAME = $(CDHC_LIBNAME)
 
-LIB_OBJS = \
-	dcmp.o \
-        enormp.o normp.o xinormal.o \
-        omnibus.o geary.o extreme.o dagstndn.o kuiprsvn.o \
-        watsonun.o durbins.o andrsndn.o cvmw2n.o ksn.o \
-        dmax.o dmaxe.o chisqn.o shapiro1.o shapiro2.o shapiroe.o \
-        cvmw2e.o kse.o kuiprsve.o watsonue.o andrsnde.o \
-        chisqe.o kotz.o \
-        royston.o as181.o as177.o as241.o as66.o \
-        weisberg.o
-
 include $(MODULE_TOPDIR)/include/Make/Lib.make
 
 default: lib

lib/cdhc/c-drive.c → lib/cdhc/c-drive.c.txt


+ 0 - 26
lib/datetime/Makefile

@@ -3,32 +3,6 @@ MODULE_TOPDIR = ../..
 
 LIB_NAME = $(DATETIME_LIBNAME)
 
-LIB_OBJS =  \
-	between.o \
-	copy.o\
-	same.o\
-	diff.o\
-	error.o \
-	format.o\
-	incr1.o\
-	incr2.o\
-	incr3.o\
-	local.o\
-	misc.o \
-	change.o\
-	scan.o\
-	sign.o\
-	type.o \
-	tz1.o\
-	tz2.o\
-	values.o
-
 include $(MODULE_TOPDIR)/include/Make/Lib.make
 
 default: lib
-
-
-# $(LIB_OBJS): $(INCLUDE_DIR)/datetime.h $(INCLUDE_DIR)/P_datetime.h
-
-#proto:
-#	make.proto *.c > P_datetime.h

+ 0 - 1
lib/db/Makefile

@@ -17,7 +17,6 @@ include $(MODULE_TOPDIR)/include/Make/Doxygen.make
 
 default: parsubdirs
 
-clean: cleansubdirs
 
 stubs: dbmi_base
 

+ 3 - 16
lib/db/sqlp/Makefile

@@ -3,25 +3,12 @@ MODULE_TOPDIR = ../../..
 LIB_NAME = $(SQLP_LIBNAME)
 PGM = sql
 
-LIB_OBJS = \
-	alloc.o \
-	print.o \
-	sql.o \
-	lex.yy.o \
-	y.tab.o
-
-EXTRA_CLEAN_FILES = lex.yy.c y.tab.c y.output y.tab.h
-EXTRA_HEADERS = y.tab.h
-
 include $(MODULE_TOPDIR)/include/Make/Lib.make
 
 default: lib
 
-y.tab.c y.tab.h: yac.y
-	$(YACC) -d -v yac.y
-
-lex.yy.c: lex.l
-	$(LEX) lex.l
+$(OBJDIR)/sqlp.yy.o: sqlp.tab.h
 
-$(OBJDIR)/lex.yy.o: lex.yy.c y.tab.h
+.INTERMEDIATE: sqlp.tab.c sqlp.tab.h sqlp.output
 
+.INTERMEDIATE: sqlp.yy.c

+ 1 - 1
lib/db/sqlp/lex.l

@@ -22,7 +22,7 @@
 
 %{
 #include <grass/sqlp.h>
-#include "y.tab.h"
+#include "sqlp.tab.h"
 #include <string.h>
 
 #undef YY_INPUT

lib/db/sqlp/yac.y → lib/db/sqlp/sqlp.y


+ 1 - 3
lib/db/sqlp/test/Makefile

@@ -1,9 +1,7 @@
 
 MODULE_TOPDIR = ../../../..
 
-include $(MODULE_TOPDIR)/include/Make/Platform.make
-include $(MODULE_TOPDIR)/include/Make/Grass.make
-include $(MODULE_TOPDIR)/include/Make/Rules.make
+include $(MODULE_TOPDIR)/include/Make/Other.make
 
 LIBES = $(SQLPLIB) $(DBMILIB) $(GISLIB) $(LEXLIB) 
 

+ 1 - 1
lib/driver/Makefile

@@ -1,6 +1,6 @@
 MODULE_TOPDIR = ../..
 
-include $(MODULE_TOPDIR)/include/Make/Platform.make
+include $(MODULE_TOPDIR)/include/Make/Vars.make
 
 EXTRA_CFLAGS=$(FTINC)
 EXTRA_LIBS=$(GISLIB) $(FTLIB) $(ICONVLIB)

+ 0 - 1
lib/external/Makefile

@@ -9,5 +9,4 @@ include $(MODULE_TOPDIR)/include/Make/Dir.make
 
 default: parsubdirs
 
-clean: cleansubdirs
 

+ 1 - 4
lib/external/bwidget/Makefile

@@ -1,7 +1,6 @@
 MODULE_TOPDIR = ../../..
 
-include $(MODULE_TOPDIR)/include/Make/Platform.make
-include $(MODULE_TOPDIR)/include/Make/Grass.make
+include $(MODULE_TOPDIR)/include/Make/Other.make
 
 default:
 	if [ ! -d $(GISBASE)/bwidget ]; then $(MKDIR) $(GISBASE)/bwidget; fi
@@ -10,5 +9,3 @@ default:
 	for file in images/*.* ; do $(INSTALL_DATA) $$file $(GISBASE)/bwidget/images/ ; done
 	for file in lang/*.* ; do $(INSTALL_DATA) $$file $(GISBASE)/bwidget/lang/ ; done
 	for file in *.tcl *.txt README.grass ; do $(INSTALL_DATA) $$file $(GISBASE)/bwidget/ ; done
-
-clean:

+ 0 - 1
lib/fonts/Makefile

@@ -8,5 +8,4 @@ include $(MODULE_TOPDIR)/include/Make/Dir.make
 
 default: parsubdirs
 
-clean: cleansubdirs
 

+ 1 - 3
lib/fonts/fonts/Makefile

@@ -1,9 +1,7 @@
 
 MODULE_TOPDIR = ../../..
 
-include $(MODULE_TOPDIR)/include/Make/Platform.make
-include $(MODULE_TOPDIR)/include/Make/Grass.make
-include $(MODULE_TOPDIR)/include/Make/Rules.make
+include $(MODULE_TOPDIR)/include/Make/Other.make
 
 SRCFONTS := $(wildcard hersh.oc?)
 SRCMAPS := $(wildcard *.hmp)

+ 15 - 24
lib/form/Makefile

@@ -1,48 +1,39 @@
 MODULE_TOPDIR = ../..
 
-EXTRA_LIBS=$(GISLIB) $(DBMILIB)
+include $(MODULE_TOPDIR)/include/Make/Vars.make
+
+MOD_OBJS = generate.o open.o
 
 LIB_NAME = $(FORM_LIBNAME)
 
-FORMDIR=$(GISBASE)/etc/form
+include $(MODULE_TOPDIR)/include/Make/Lib.make
 
-HTMLLIB=$(FORMDIR)/html_library.tcl
-FORM=$(FORMDIR)/form.tcl
-FORMPROG=$(FORMDIR)/form
+EXTRA_LIBS=$(GISLIB) $(DBMILIB)
 EXTRA_CFLAGS = $(XCFLAGS) $(TCLINCDIR) $(TKINCDIR)
 
-include $(MODULE_TOPDIR)/include/Make/Platform.make
+FORMDIR=$(GISBASE)/etc/form
+FORM=$(FORMDIR)/form.tcl
+FORMPROG=$(FORMDIR)/form
+HTMLLIB=$(FORMDIR)/html_library.tcl
 
-LIB_OBJS = generate.o open.o
 ifneq ($(TCLTKLIBS),)
     GTCLTKFORM = $(HTMLLIB) $(FORM) $(FORMPROG) 
 endif
 
-include $(MODULE_TOPDIR)/include/Make/Lib.make
-
 default: lib $(GTCLTKFORM)
 
 $(FORMDIR):
 	if [ ! -d $@ ]; then $(MKDIR) $@; fi
 
-ifneq ($(BROKEN_MAKE),)
-$(HTMLLIB): html_library_grass.tcl $(FORMDIR)
-else
-$(HTMLLIB): html_library_grass.tcl | $(FORMDIR)
-endif
+$(HTMLLIB): html_library_grass.tcl
+	$(MAKE) $(FORMDIR)
 	$(INSTALL_DATA) $< $@
 
-ifneq ($(BROKEN_MAKE),)
-$(FORM): form.tcl $(FORMDIR)
-else
-$(FORM): form.tcl | $(FORMDIR)
-endif
+$(FORM): form.tcl
+	$(MAKE) $(FORMDIR)
 	$(INSTALL_DATA) $< $@
 
-ifneq ($(BROKEN_MAKE),)
-$(FORMPROG): $(OBJDIR)/form.o $(FORMDIR)
-else
-$(FORMPROG): $(OBJDIR)/form.o | $(FORMDIR)
-endif
+$(FORMPROG): $(OBJDIR)/form.o
+	$(MAKE) $(FORMDIR)
 	$(CC) $(LDFLAGS) -o $@ $(OBJDIR)/form.o $(DBMILIB) $(GISLIB) $(DATETIMELIB) \
 				$(TCLTKLIBPATH) $(TCLTKLIBS) $(MATHLIB) $(XDRLIB)

+ 4 - 9
lib/gtcltk/Makefile

@@ -1,16 +1,11 @@
 MODULE_TOPDIR = ../..
 
-include $(MODULE_TOPDIR)/include/Make/Platform.make
-include $(MODULE_TOPDIR)/include/Make/Grass.make
-include $(MODULE_TOPDIR)/include/Make/Rules.make
+PGM=grocat
+include $(MODULE_TOPDIR)/include/Make/Etc.make
+include $(MODULE_TOPDIR)/include/Make/NoHtml.make
 
-default: $(ETC)/gtcltk $(ETC)/grocat$(EXE)
+default: etc $(ETC)/gtcltk
 
 $(ETC)/gtcltk: *.tcl 
 	if [ ! -d $(ETC)/gtcltk ]; then $(MKDIR) $(ETC)/gtcltk; fi
 	for file in *.tcl ; do $(INSTALL_DATA) $$file $(ETC)/gtcltk/ ; done
-
-$(ETC)/grocat$(EXE): $(OBJDIR)/grocat.o
-	$(CC) $(LDFLAGS) $(OBJDIR)/grocat.o -o $@
-	
-clean:

+ 24 - 78
lib/init/Makefile

@@ -16,13 +16,18 @@
 
 MODULE_TOPDIR = ../..
 
-include $(MODULE_TOPDIR)/include/Make/Platform.make
-include $(MODULE_TOPDIR)/include/Make/Grass.make
-include $(MODULE_TOPDIR)/include/Make/Rules.make
+include $(MODULE_TOPDIR)/include/Make/Other.make
+include $(MODULE_TOPDIR)/include/Make/Compile.make
 
 START_UP=grass$(GRASS_VERSION_MAJOR)$(GRASS_VERSION_MINOR)
 
-EXTRA_CFLAGS = -DD_LOCATION_NAME=\"$(DEFAULT_LOCATION)\" -DD_GISDBASE=\"$(DEFAULT_DATABASE)\" -DGRASS_VERSION_NUMBER=\"'$(GRASS_VERSION_NUMBER)'\" -DGRASS_VERSION_UPDATE_PKG=\"'$(GRASS_VERSION_UPDATE_PKG)'\"
+EXTRA_CFLAGS = \
+	-DD_LOCATION_NAME=\"$(DEFAULT_LOCATION)\" \
+	-DD_GISDBASE=\"$(DEFAULT_DATABASE)\" \
+	-DGRASS_VERSION_NUMBER=\"'$(GRASS_VERSION_NUMBER)'\" \
+	-DGRASS_VERSION_UPDATE_PKG=\"'$(GRASS_VERSION_UPDATE_PKG)'\"
+
+LIBES = $(GISLIB) $(DATETIMELIB)
 
 FILES = \
 	$(ARCH_BINDIR)/$(START_UP) \
@@ -39,28 +44,23 @@ FILES = \
 	$(ETC)/gis_set.tcl \
 	$(ETC)/epsg_option.tcl \
 	$(ETC)/file_option.tcl \
-	$(ETC)/grass-run.sh \
-	$(ETC)/grass-xterm-wrapper
+	$(HTMLDIR)/variables.html \
+	$(HTMLDIR)/grass7.html \
+	$(HTMLDIR)/helptext.html \
+	$(HTMLDIR)/help_loc_struct.png
 
 ifeq ($(findstring darwin,$(ARCH)),darwin)
 	FILES += \
-		$(ETC)/grass-xterm-mac \
 		$(ETC)/html_browser_mac.sh
 endif
 
 ifneq ($(strip $(MINGW)),)
 	FILES += \
 		$(ARCH_BINDIR)/$(START_UP).bat \
-		$(ETC)/Init.bat \
-		$(ETC)/grass-run.bat
+		$(ETC)/Init.bat
 endif
 
 default: $(FILES)
-	$(MKDIR) $(GISBASE)/docs/html
-	$(INSTALL_DATA) variables.html $(GISBASE)/docs/html/variables.html
-	$(INSTALL_DATA) grass7.html $(GISBASE)/docs/html/grass7.html
-	$(INSTALL_DATA) helptext.html $(GISBASE)/docs/html/helptext.html
-	$(INSTALL_DATA) help_loc_struct.png $(GISBASE)/docs/html/help_loc_struct.png
 
 $(ARCH_BINDIR)/$(START_UP): init.sh grass.src
 	@test -d $(ARCH_BINDIR) || (echo 'ARCH_DISTDIR($(ARCH_BINDIR))' not found; exit 1)
@@ -102,79 +102,25 @@ $(ETC)/Init.bat: init.bat
 	$< > $@"
 	chmod +x $@
 
-$(ETC)/echo$(EXE): $(OBJDIR)/echo.o
-	$(CC) $(LDFLAGS) $(OBJDIR)/echo.o -o $@
-
-$(ETC)/clean_temp$(EXE): $(OBJDIR)/clean_temp.o  
-	$(CC) $(LDFLAGS) $(OBJDIR)/clean_temp.o $(GISLIB) $(DATETIMELIB) $(MATHLIB) $(XDRLIB) -o $@
-
-$(ETC)/run$(EXE): $(OBJDIR)/run.o
-	$(CC) $(LDFLAGS) $(OBJDIR)/run.o -o $@
-
-$(ETC)/lock$(EXE): $(OBJDIR)/lock.o
-	$(CC) $(LDFLAGS) $(OBJDIR)/lock.o $(GISLIB) $(DATETIMELIB) $(MATHLIB) $(XDRLIB) -o $@
+$(ETC)/echo$(EXE) $(ETC)/run$(EXE): $(ETC)/%$(EXE): $(OBJDIR)/%.o
+	$(CC) $(LDFLAGS) $< -o $@
 
-$(BIN)/exit:
-	touch $@
-	chmod 600 $@
+$(ETC)/clean_temp$(EXE) $(ETC)/lock$(EXE): $(ETC)/%$(EXE): $(OBJDIR)/%.o
+	$(call linker)
 
 $(ETC)/VERSIONNUMBER:
 	rm -f $@
 	echo "$(GRASS_VERSION_NUMBER)" > $@
 	chmod +r $@
 
-$(ETC)/grass_intro: grass_intro.txt version.sed 
-	rm -f $@
-	sh ./version.sed "$(GRASS_VERSION_NUMBER)" "$(GRASS_VERSION_DATE)" "$(GRASS_VERSION_UPDATE_PKG)" grass_intro.txt > $@
-	chmod +r $@
-
-$(ETC)/license: license.txt version.sed
+$(ETC)/grass_intro $(ETC)/license $(ETC)/welcome: $(ETC)/%: %.txt version.sed 
 	rm -f $@
-	sh ./version.sed "$(GRASS_VERSION_NUMBER)" "$(GRASS_VERSION_DATE)" "$(GRASS_VERSION_UPDATE_PKG)" license.txt > $@
+	sh ./version.sed "$(GRASS_VERSION_NUMBER)" "$(GRASS_VERSION_DATE)" "$(GRASS_VERSION_UPDATE_PKG)" $< > $@
 	chmod +r $@
 
-$(ETC)/welcome: welcome.txt version.sed
-	rm -f $@
-	sh ./version.sed "$(GRASS_VERSION_NUMBER)" "$(GRASS_VERSION_DATE)" "$(GRASS_VERSION_UPDATE_PKG)" welcome.txt > $@
-	chmod +r $@
-
-$(ETC)/msgs: msgs
-	rm -rf $@
-	$(MKDIR) $@
-	$(INSTALL_DATA) msgs/*.msg $@	
-
-$(ETC)/gis_set.tcl: gis_set.tcl
-	rm -f $@
-	$(INSTALL) gis_set.tcl $(ETC)
-
-$(ETC)/epsg_option.tcl: epsg_option.tcl
-	rm -f $@
-	$(INSTALL) epsg_option.tcl $(ETC)
-
-$(ETC)/file_option.tcl: file_option.tcl
-	rm -f $@
-	$(INSTALL) file_option.tcl $(ETC)
-
-$(ETC)/grass-run.sh: grass-run.src
-	rm -f $@
-	$(SHELL) -c "sed \
-	-e \"s#LD_LIBRARY_PATH_VAR#$(LD_LIBRARY_PATH_VAR)#g\" \
-	grass-run.src > $@"
-	chmod +x $@
-
-$(ETC)/grass-run.bat: grass-run.bat
-	$(INSTALL) grass-run.bat $(ETC)
-
-$(ETC)/grass-xterm-wrapper: grass-xterm-wrapper
-	$(INSTALL) grass-xterm-wrapper $(ETC)
-
-$(ETC)/grass-xterm-mac: grass-xterm-mac
-	$(INSTALL) grass-xterm-mac $(ETC)
-
-$(ETC)/prompt.sh: prompt.sh
-	rm -f $@
-	$(INSTALL) prompt.sh $(ETC)
+$(HTMLDIR)/%: %
+	$(INSTALL_DATA) $< $@
 
-$(ETC)/html_browser_mac.sh: html_browser_mac.sh
-	$(INSTALL) html_browser_mac.sh $(ETC)
+$(ETC)/%: %
+	$(INSTALL) $< $@
 

+ 0 - 38
lib/init/grass-run.src

@@ -1,38 +0,0 @@
-#!/bin/sh
-# script to launch GRASS commands
-
-# change console title to name of module
-if [ "$TERM" = "xterm" ] && [ -n "$BASH" ] ; then
-   TITLE="GRASS: $1"
-   echo -e "\033]0;${TITLE}\007\c"
-fi
-
-
-# force command line startup mode
-GRASS_UI_TERM=1
-export GRASS_UI_TERM
-
-
-# workaround for systems with xterm is setuid/setgid
-#  http://grass.itc.it/pipermail/grass5/2004-September/015409.html
-LD_LIBRARY_PATH_VAR=$GRASS_LD_LIBRARY_PATH
-export LD_LIBRARY_PATH_VAR
-
-echo
-echo "================================================================="
-echo "If you wish to resize the X monitor, do so now. Window size is"
-echo "locked while interactive modules are running."
-echo "================================================================="
-echo
-
-# run command
-"$@"
-
-EXIT_VAL=$?
-if [ $EXIT_VAL -ne 0 ] ; then
-   echo
-   echo "ERROR: $1 exited abnormally. Press <enter> to continue."
-   read
-fi
-
-exit $EXIT_VAL

+ 0 - 21
lib/init/grass-xterm-wrapper

@@ -1,21 +0,0 @@
-#!/bin/sh
-# script to wrap xterm 
-
-if [ -z "$GRASS_XTERM" ] ; then
-   # find a working xterm or xterm compatible executable
-   TERM_TRY="xterm rxvt x-terminal-emulator"
-   for TERM_PROG in $TERM_TRY ; do
-      if [ -x "`which $TERM_PROG`" ] ; then
-         GRASS_XTERM="$TERM_PROG"
-         break
-      fi
-   done
-   if [ -z "$GRASS_XTERM" ] ; then
-      # no luck, use a default
-      g.message -w "No terminal program found, trying xterm"
-      GRASS_XTERM=xterm
-   fi
-fi
-
-# run command
-exec "$GRASS_XTERM" "$@"

+ 0 - 1
lib/iostream/Makefile

@@ -1,6 +1,5 @@
 MODULE_TOPDIR = ../..
 
-LIB_OBJS = mm.o mm_utils.o ami_stream.o rtimer.o
 LIB_NAME = $(IOSTREAM_LIBNAME)
 
 include $(MODULE_TOPDIR)/include/Make/Lib.make

+ 0 - 13
lib/linkm/Makefile

@@ -3,19 +3,6 @@ MODULE_TOPDIR = ../..
 
 LIB_NAME = $(LINKM_LIBNAME)
 
-LIB_OBJS = \
-	init.o\
-	new.o\
-	next.o\
-	oom.o\
-	dispose.o
-
 include $(MODULE_TOPDIR)/include/Make/Lib.make
 
 default: lib
-
-try: try.o $(LINKMLIB)
-	$(CC) $(LDFLAGS) try.o $(LINKMLIB) -o try
-
-try2: try2.o $(LINKMLIB)
-	$(CC) $(LDFLAGS) try2.o $(LINKMLIB) -o try2

+ 0 - 17
lib/linkm/destroy.c

@@ -1,17 +0,0 @@
-/*
- **  Written by David Gerdes  US Army Construction Engineering Research Lab
- **     April 1992
- **  Copyright 1992 USA-CERL   All rights reserved.
- **
- */
-#include <grass/linkm.h>
-
-
-void link_destroy(struct link_head *Head, VOID_T * ptr)
-{
-    if (NULL == ptr)
-	return;
-
-    link__set_next(ptr, Head->Unused);	/* ptr->next = Unused */
-    Head->Unused = ptr;		/* Unused = ptr */
-}

lib/linkm/linkm.c → lib/linkm/test/linkm.c


lib/linkm/malloc.c → lib/linkm/test/malloc.c


lib/linkm/speed.c → lib/linkm/test/speed.c


lib/linkm/speed2.c → lib/linkm/test/speed2.c


lib/linkm/speed3.c → lib/linkm/test/speed3.c


lib/linkm/try.c → lib/linkm/test/try.c


lib/linkm/try2.c → lib/linkm/test/try2.c


+ 4 - 0
lib/nviz/Makefile

@@ -15,7 +15,11 @@ EXTRA_INC = $(VECT_INC) $(OPENGLINC) $(TIFFINCPATH) $(FFMPEGINCPATH)
 
 EXTRA_CFLAGS = $(VECT_CFLAGS) $(XCFLAGS)
 
+ifneq ($(USE_OPENGL),)
 default: lib
+else
+default:
+endif
 
 # doxygen
 DOXNAME=nviz

+ 4 - 0
lib/ogsf/Makefile

@@ -10,7 +10,11 @@ include $(MODULE_TOPDIR)/include/Make/Doxygen.make
 EXTRA_INC = $(VECT_INC) $(OPENGLINC) $(TIFFINCPATH) $(FFMPEGINCPATH)
 EXTRA_CFLAGS = $(VECT_CFLAGS) $(XCFLAGS)
 
+ifneq ($(USE_OPENGL),)
 default: lib
+else
+default:
+endif
 
 #doxygen:
 DOXNAME=ogsf

+ 7 - 30
lib/pngdriver/Makefile

@@ -1,40 +1,17 @@
 MODULE_TOPDIR = ../..
 
-include $(MODULE_TOPDIR)/include/Make/Platform.make
+include $(MODULE_TOPDIR)/include/Make/Vars.make
 
-EXTRA_CFLAGS=$(GETHOSTNAME) $(ZLIBINCPATH) $(PNGINC) -I../driver
+ifeq ($(USE_PNG),)
+  MOD_OBJS := $(filter-out read_png.o write_png.o,$(AUTO_OBJS))
+endif
 
-EXTRA_LIBS=$(DRIVERLIB) $(GISLIB) $(PNGLIB)
 LIB_NAME = $(PNGDRIVER_LIBNAME)
 PGM = pngdriver
+include $(MODULE_TOPDIR)/include/Make/Lib.make
 
-LIB_OBJS =	\
-	Box.o			\
-	Color.o			\
-	Color_table.o		\
-	Draw_bitmap.o		\
-	Draw_line.o		\
-	Draw_point.o		\
-	Driver.o		\
-	Erase.o			\
-	Graph_close.o		\
-	Graph_set.o		\
-	Line_width.o		\
-	Polygon.o		\
-	Raster.o		\
-	Respond.o		\
-	Set_window.o		\
-	read.o			\
-	read_ppm.o		\
-	read_bmp.o		\
-	write.o			\
-	write_ppm.o		\
-	write_bmp.o		
-
-ifneq ($(USE_PNG),)
-  LIB_OBJS += read_png.o write_png.o
-endif
+EXTRA_CFLAGS=$(GETHOSTNAME) $(ZLIBINCPATH) $(PNGINC) -I../driver
 
-include $(MODULE_TOPDIR)/include/Make/Lib.make
+EXTRA_LIBS=$(DRIVERLIB) $(GISLIB) $(PNGLIB)
 
 default: lib

+ 3 - 9
lib/proj/Makefile

@@ -2,17 +2,14 @@ MODULE_TOPDIR = ../..
 
 LIB_NAME = $(GPROJ_LIBNAME)
 
-PACKAGE ="libgproj"
-DEFS=-DPACKAGE=\"$(PACKAGE)\"
+include $(MODULE_TOPDIR)/include/Make/Lib.make 
+include $(MODULE_TOPDIR)/include/Make/Doxygen.make
 
 EXTRA_LIBS=$(GISLIB) $(PROJLIB) $(GDALLIBS)
 EXTRA_CFLAGS = $(GETHOSTNAME) $(ZLIBINCPATH) $(PICFLAGS) $(GDALCFLAGS) $(DEFS)
 EXTRA_INC = $(PROJINC)
 
-LIB_OBJS = get_proj.o do_proj.o convert.o datum.o ellipse.o
-
-NAD_TABLES = FL.lla MD.lla TN.lla WI.lla WO.lla alaska.lla conus.lla \
-             hawaii.lla prvi.lla stgeorge.lla stlrnc.lla stpaul.lla
+NAD_TABLES := $(wildcard *.lla)
 
 NT_TABLES = ntv1_can.dat nzgd2kgrid0005.gsb
 
@@ -22,9 +19,6 @@ NAD_DIR = $(GISBASE)/etc/nad
 NAD2BIN = nad2bin
 CSV_DIR = $(GISBASE)/etc/ogr_csv
 
-include $(MODULE_TOPDIR)/include/Make/Lib.make 
-include $(MODULE_TOPDIR)/include/Make/Doxygen.make
-
 default: lib $(NAD_DIR) $(CSV_DIR)
 
 $(NAD_DIR): $(NAD_TABLES) $(NT_TABLES)

+ 1 - 4
lib/python/Makefile

@@ -1,8 +1,6 @@
 MODULE_TOPDIR = ../..
 
-include $(MODULE_TOPDIR)/include/Make/Platform.make
-include $(MODULE_TOPDIR)/include/Make/Grass.make
-include $(MODULE_TOPDIR)/include/Make/Rules.make
+include $(MODULE_TOPDIR)/include/Make/Other.make
 
 default: $(ETC)/python
 
@@ -12,4 +10,3 @@ $(ETC)/python: grass.py README.txt
 
 .PHONY: $(ETC)/python
 
-clean:

+ 1 - 1
lib/raster/Makefile

@@ -1,6 +1,6 @@
 MODULE_TOPDIR = ../..
 
-include $(MODULE_TOPDIR)/include/Make/Platform.make
+include $(MODULE_TOPDIR)/include/Make/Vars.make
 
 PACKAGE ="libraster"
 DEFS=-DPACKAGE=\"$(PACKAGE)\"

+ 0 - 1
lib/rst/Makefile

@@ -9,7 +9,6 @@ include $(MODULE_TOPDIR)/include/Make/Dir.make
 
 default: parsubdirs
 
-clean: cleansubdirs
 
 interp_float: data qtree
 

+ 0 - 15
lib/segment/Makefile

@@ -4,21 +4,6 @@ EXTRA_LIBS=$(GISLIB)
 
 LIB_NAME = $(SEGMENT_LIBNAME)
 
-LIB_OBJS = \
-        address.o\
-        flush.o\
-        format.o\
-        get.o\
-        get_row.o\
-        init.o\
-        pagein.o\
-        pageout.o\
-        put.o\
-        put_row.o\
-        release.o\
-        seek.o\
-        setup.o
-
 include $(MODULE_TOPDIR)/include/Make/Lib.make
 include $(MODULE_TOPDIR)/include/Make/Doxygen.make
 

+ 0 - 128
lib/segment/debug.c

@@ -1,128 +0,0 @@
-
-/**
- * \file debug.c
- *
- * \brief Segment debug routines.
- *
- * This file has debug versions of <i>segment_get()</i> and 
- * <i>segment_put()</i> which check the row,col and print error messages 
- * to <em>stderr</em> upon violations.
- *
- * <b>Build Note:</b> Load the debug.o file before the SEGMENTLIB and 
- * the debug versions will supercede the original.
- *
- * This program is free software under the GNU General Public License
- * (>=v2). Read the file COPYING that comes with GRASS for details.
- *
- * \author GRASS GIS Development Team
- *
- * \date 2005-2006
- */
-
-#include <stdio.h>
-#include <string.h>
-#include <grass/segment.h>
-
-
-static int check(const SEGMENT *, int, int, char *);
-
-
-/**
- * \fn int segment_get (SEGMENT *SEG, void *buf, int row, int col)
- *
- * \brief Get value from segment file.
- *
- * Provides random read access to the segmented data. It gets
- * <i>len</i> bytes of data into <b>value</b> from the segment file
- * <b>seg</b> for the corresponding <b>row</b> and <b>col</b> in the
- * original data matrix.
- *
- * \param[in] seg
- * \param[in,out] buf
- * \param[in] row
- * \param[in] col
- * \return 1 on success
- * \return -1 if unable to seek or read segment file
- */
-
-int segment_get(SEGMENT * SEG, void *buf, int row, int col)
-{
-    int index, n;
-
-    if (!check(SEG, row, col, "segment_get"))
-	return -1;
-
-    segment_address(SEG, row, col, &n, &index);
-    if ((i = segment_pagein(SEG, n)) < 0)
-	return -1;
-
-    memcpy(buf, &SEG->scb[i].buf[index], SEG->len);
-
-    return 1;
-}
-
-
-/**
- * \fn int segment_put (SEGMENT *SEG, void *buf, int row, int col)
- *
- * \brief Put value to segment file.
- *
- * Provides random write access to the segmented data. It
- * copies <i>len</i> bytes of data from <b>value</b> into the segment
- * structure <b>seg</b> for the corresponding <b>row</b> and <b>col</b> in
- * the original data matrix.
- *
- * The data is not written to disk immediately. It is stored in a memory segment
- * until the segment routines decide to page the segment to disk.
- *
- * \param[in] seg
- * \param[in,out] buf
- * \param[in] row
- * \param[in] col
- * \return 1 on success
- * \return -1 if unable to seek or write segment file
- */
-
-int segment_put(SEGMENT * SEG, const void *buf, int row, int col)
-{
-    int index, n;
-
-    if (!check(SEG, row, col, "segment_put"))
-	return -1;
-
-    segment_address(SEG, row, col, &n, &index);
-    if ((i = segment_pagein(SEG, n)) < 0)
-	return -1;
-
-    SEG->scb[i].dirty = 1;
-
-    memcpy(&SEG->scb[i].buf[index], buf, SEG->len);
-
-    return 1;
-}
-
-
-static int check(const SEGMENT * SEG, int row, int col, char *me)
-{
-    int r = row >= 0 && row < SEG->nrows;
-    int c = col >= 0 && col < SEG->ncols;
-
-    if (r && c)
-	return 1;
-
-    fprintf(stderr, "%s(SEG=%lx,fd=%d,row=%d,col=%d) ",
-	    me, (unsigned long int)SEG, SEG->fd, row, col);
-    if (!r) {
-	fprintf(stderr, "bad row ");
-	if (row >= SEG->nrows)
-	    fprintf(stderr, "(max %d) ", SEG->nrows - 1);
-    }
-    if (!c) {
-	fprintf(stderr, "bad col ");
-	if (col >= SEG->ncols)
-	    fprintf(stderr, "(max %d) ", SEG->ncols - 1);
-    }
-    fprintf(stderr, "\n");
-
-    return 0;
-}

+ 0 - 111
lib/segment/try.c

@@ -1,111 +0,0 @@
-
-/****************************************************************************
- *
- * MODULE:       segment
- * AUTHOR(S):    CERL (original contributors)
- *               Markus Neteler <neteler itc.it>, 
- *               Bernhard Reiter <bernhard intevation.de>, 
- *               Brad Douglas <rez touchofmadness.com>, 
- *               Glynn Clements <glynn gclements.plus.com>
- * PURPOSE:      Segment test routines
- * COPYRIGHT:    (C) 1999-2006 by the GRASS Development Team
- *
- *               This program is free software under the GNU General Public
- *               License (>=v2). Read the file COPYING that comes with GRASS
- *               for details.
- *
- *****************************************************************************/
-
-#include <stdlib.h>
-#include <stdio.h>
-#include <grass/segment.h>
-
-
-#define NCOLS 100
-#define NROWS 100
-#define SROWS 8
-#define SCOLS 8
-#define LEN   2
-#define NSEGS 4
-
-
-/**
- * \fn int main (int argc, char **argv)
- *
- * \brief Segment library test program.
- *
- * \return 0 on success
- * \return calls <i>exit()</i> on error
- */
-
-int main(int argc, char **argv)
-{
-    SEGMENT seg;
-    char data[NROWS * NCOLS * LEN];
-    int row, col;
-    int i;
-    int fd;
-    char junk[3];
-
-    fprintf(stdout, "creating seg.file\n");
-    fd = creat("seg.file", 0666);
-    if (fd < 0) {
-	perror("seg.file");
-	exit(EXIT_FAILURE);
-    }
-    segment_format(fd, NROWS, NCOLS, SROWS, SCOLS, LEN);
-    close(fd);
-
-    fprintf(stdout, "opening seg.file\n");
-    fd = open("seg.file", 2);
-    if (fd < 0) {
-	perror("seg.file");
-	exit(EXIT_FAILURE);
-    }
-    segment_init(&seg, fd, NSEGS);
-
-    fprintf(stdout, "rows %d, cols %d (len %d)\n", seg.nrows, seg.ncols,
-	    seg.len);
-    if (seg.nrows != NROWS || seg.ncols != NCOLS || seg.len != LEN) {
-	fprintf(stdout, "OOPS - wrong segment file\n");
-	exit(EXIT_FAILURE);
-    }
-
-    fprintf(stdout, "writing seg.file\n");
-    for (row = 0; row < NROWS; row++) {
-	for (col = 0; col < NCOLS; col++) {
-	    data[col * 2] = row;
-	    data[col * 2 + 1] = col;
-	}
-	segment_put_row(&seg, data, row);
-    }
-
-    while (1) {
-	for (i = 0; i < seg.nseg; i++)
-	    if (seg.scb[i].n >= 0) {
-		fprintf(stdout, "segment %d age %d",
-			seg.scb[i].n, seg.scb[i].age);
-		if (i == seg.cur)
-		    fprintf(stdout, " current");
-		fprintf(stdout, "\n");
-	    }
-	fprintf(stdout, "\nenter row col: ");
-	if (!fgets(data, 20, stdin))
-	    break;
-	if (sscanf(data, "%1s", junk) != 1)
-	    continue;
-	if (sscanf(data, "%d%d", &row, &col) != 2)
-	    fprintf(stdout, "??\n");
-	else if (row < 0 || row >= NROWS || col < 0 || col >= NCOLS)
-	    fprintf(stdout, "bad row/col value(s)\n");
-	else {
-	    segment_get(&seg, data, row, col);
-	    fprintf(stdout, "data = %d %d\n", data[0], data[1]);
-	}
-    }
-
-    segment_release(&seg);
-    close(fd);
-
-    return 0;
-}

+ 0 - 1
lib/vector/Makefile

@@ -15,7 +15,6 @@ include $(MODULE_TOPDIR)/include/Make/Doxygen.make
 
 default: parsubdirs
 
-clean: cleansubdirs
 
 diglib: rtree
 

+ 4 - 10
lib/vector/dglib/Makefile

@@ -1,16 +1,10 @@
 MODULE_TOPDIR = ../../..
 
-LIB_NAME = $(GRAPH_LIBNAME)
+include $(MODULE_TOPDIR)/include/Make/Vars.make
+
+MOD_OBJS := $(filter-out %-template.o,$(AUTO_OBJS))
 
-LIB_OBJS = \
-	avl.o \
-	tavl.o \
-	graph.o \
-	heap.o \
-	tree.o \
-	helpers.o \
-	graph_v1.o \
-	graph_v2.o
+LIB_NAME = $(GRAPH_LIBNAME)
 
 include $(MODULE_TOPDIR)/include/Make/Lib.make
 include $(MODULE_TOPDIR)/include/Make/Doxygen.make

+ 5 - 31
lib/vector/diglib/Makefile

@@ -1,42 +1,16 @@
 MODULE_TOPDIR = ../../..
 
-EXTRA_LIBS=$(GISLIB) $(RTREELIB) $(MATHLIB)
+include $(MODULE_TOPDIR)/include/Make/Vars.make
 
-LIB_NAME = $(DIG2_LIBNAME)
-
-LIB_OBJS = \
-    allocation.o  \
-    angle.o  \
-    box.o  \
-    cindex.o  \
-    cindex_rw.o  \
-    file.o \
-    frmt.o \
-    head.o \
-    inside.o \
-    linecros.o \
-    line_dist.o \
-    list.o \
-    plus.o \
-    plus_area.o  \
-    plus_line.o \
-    plus_node.o \
-    plus_struct.o \
-    poly.o \
-    port_init.o \
-    portable.o \
-    prune.o \
-    spindex.o  \
-    spindex_rw.o  \
-    struct_alloc.o \
-    type.o \
-    update.o
+MOD_OBJS := $(filter-out test.o port_test.o,$(AUTO_OBJS))
 
+LIB_NAME = $(DIG2_LIBNAME)
 
 include $(MODULE_TOPDIR)/include/Make/Lib.make
 
 EXTRA_INC = $(VECT_INC)
 EXTRA_CFLAGS = $(VECT_CFLAGS)
+LIBES = $(GISLIB) $(RTREELIB) $(MATHLIB)
 
 TEST = $(OBJDIR)/test
 
@@ -44,7 +18,7 @@ default: lib
 	$(MAKE) $(TEST)
 
 #  Test portable read/write functions
-$(OBJDIR)/test: test.c $(DEPENDENCIES) $(ARCH_LIB_OBJS)
+$(OBJDIR)/test: test.c $(DIG2DEP)
 	echo "==============TEST============="
 	$(CC) $(LDFLAGS) $(COMPILE_FLAGS) $(VECT_CFLAGS) $(INC) $(VECT_INC) -o $@ test.c $(DIG2LIB) $(RTREELIB) \
 				$(GISLIB) $(DATETIMELIB) $(MATHLIB) $(XDRLIB) 

+ 0 - 34
lib/vector/diglib/portable/i386-pc-mingw32msvc.h

@@ -1,34 +0,0 @@
-/* Architecture: i386-pc-mingw32msvc */
-
-/* Native machine sizes */
-#define NATIVE_DOUBLE 8
-#define NATIVE_FLOAT  4
-#define NATIVE_LONG   4
-#define NATIVE_INT    4
-#define NATIVE_SHORT  2
-#define NATIVE_CHAR   1
-
-/* Native machine byte orders */
-#define DOUBLE_ORDER 0
-#define FLOAT_ORDER  0
-#define LONG_ORDER   0
-#define INT_ORDER    0
-#define SHORT_ORDER  0
-
-
-/* Translation matrices from big endian to native */
-
-/* Double format: */
-static int dbl_cnvrt[] = { 7, 6, 5, 4, 3, 2, 1, 0 };
-
-/* Float format : */
-static int flt_cnvrt[] = { 3, 2, 1, 0 };
-
-/* Long format  : */
-static int lng_cnvrt[] = { 3, 2, 1, 0 };
-
-/* Int format  : */
-static int int_cnvrt[] = { 3, 2, 1, 0 };
-
-/* Short format : */
-static int shrt_cnvrt[] = { 1, 0 };

+ 1 - 8
lib/vector/rtree/Makefile

@@ -2,17 +2,10 @@ MODULE_TOPDIR = ../../..
 
 LIB_NAME = $(RTREE_LIBNAME)
 
-LIB_OBJS = card.o \
-	gammavol.o \
-	index.o \
-	node.o \
-	rect.o \
-	split_q.o 
+include $(MODULE_TOPDIR)/include/Make/Lib.make
 
 EXTRA_LIBS = $(MATHLIB)
 
-include $(MODULE_TOPDIR)/include/Make/Lib.make
-
 RTLINC = $(ARCH_INCDIR)/rtree
 HEADERS := $(RTLINC)/card.h $(RTLINC)/index.h $(RTLINC)/split_q.h \
 	$(ARCH_INCDIR)/rtree.h

lib/vector/rtree/test.c → lib/vector/rtree/docs/test.c


+ 0 - 71
lib/vector/rtree/sphvol.c

@@ -1,71 +0,0 @@
-
-/****************************************************************************
-* MODULE:       R-Tree library 
-*              
-* AUTHOR(S):    Antonin Guttman - original code
-*               Daniel Green (green@superliminal.com) - major clean-up
-*                               and implementation of bounding spheres
-*               
-* PURPOSE:      Multidimensional index
-*
-* COPYRIGHT:    (C) 2001 by the GRASS Development Team
-*
-*               This program is free software under the GNU General Public
-*               License (>=v2). Read the file COPYING that comes with GRASS
-*               for details.
-*****************************************************************************/
-
-/*
- *                   SPHERE VOLUME
- *                   by Daniel Green
- *                   dgreen@superliminal.com
- *
- * Calculates and prints the volumes of the unit hyperspheres for
- * dimensions zero through the given value, or 9 by default.
- * Prints in the form of a C array of double called sphere_volumes.
- *
- * From formule in "Regular Polytopes" by H.S.M Coxeter, the volume
- * of a hypersphere of dimension d is:
- *        Pi^(d/2) / gamma(d/2 + 1)
- * 
- * This implementation works by first computing the log of the above
- * function and then returning the exp of that value in order to avoid
- * instabilities due to the huge values that the real gamma function
- * would return.
- *
- * Multiply the output volumes by R^n to get the volume of an n
- * dimensional sphere of radius R.
- */
-
-#include <stdlib.h>
-#include <stdio.h>
-#include <math.h>
-#include <grass/gis.h>
-
-static void print_volume(int dimension, double volume)
-{
-    fprintf(stdout, "\t%.6f,  /* dimension %3d */\n", volume, dimension);
-}
-
-static double sphere_volume(double dimension)
-{
-    double log_gamma, log_volume;
-
-    log_gamma = gamma(dimension / 2.0 + 1);
-    log_volume = dimension / 2.0 * log(M_PI) - log_gamma;
-    return exp(log_volume);
-}
-
-extern int main(int argc, char *argv[])
-{
-    int dim, max_dims = 9;
-
-    if (2 == argc)
-	max_dims = atoi(argv[1]);
-
-    fprintf(stdout, "static const double sphere_volumes[] = {\n");
-    for (dim = 0; dim < max_dims + 1; dim++)
-	print_volume(dim, sphere_volume(dim));
-    fprintf(stdout, "};\n");
-    return 0;
-}

+ 1 - 3
locale/Makefile

@@ -3,9 +3,7 @@
 # wxpython by Martin Landa
 
 MODULE_TOPDIR = ..
-include $(MODULE_TOPDIR)/include/Make/Platform.make
-include $(MODULE_TOPDIR)/include/Make/Grass.make
-include $(MODULE_TOPDIR)/include/Make/Rules.make
+include $(MODULE_TOPDIR)/include/Make/Other.make
 
 default:
 	@if [ "$(HAVE_NLS)" != "" ] ; then \

+ 8 - 12
macosx/Makefile

@@ -1,6 +1,13 @@
 MODULE_TOPDIR = ..
 
-include $(MODULE_TOPDIR)/include/Make/Platform.make
+include $(MODULE_TOPDIR)/include/Make/Vars.make
+
+SUBDIRS = 
+ifeq ($(MACOSX_APP),1)
+SUBDIRS = app modbuild
+endif
+
+include $(MODULE_TOPDIR)/include/Make/Dir.make
 
 MACOSX_APP_NAME = GRASS-${GRASS_VERSION_MAJOR}.${GRASS_VERSION_MINOR}.app
 MACOSX_APPDIR = ${MACOSX_APP_NAME}/Contents/MacOS
@@ -24,13 +31,6 @@ PACKAGEMAKER = /Developer/Tools/packagemaker
 PKG_INST_DIR = ${prefix}/${MACOSX_APP_NAME}
 endif
 
-SUBDIRS = 
-ifeq ($(MACOSX_APP),1)
-SUBDIRS = app modbuild
-endif
-
-include $(MODULE_TOPDIR)/include/Make/Dir.make
-
 default: subdirs
 
 install-macosx:
@@ -120,7 +120,3 @@ macosx-support-dir:
 	${MAKE_DIR_CMD} ${MACOSX_SUPPDIR}/Modules/docs/html
 	${MAKE_DIR_CMD} ${MACOSX_SUPPDIR}/Modules/etc
 	${MAKE_DIR_CMD} ${MACOSX_SUPPDIR}/Modules/lib
-
-clean: cleansubdirs
-	-rm -rf ${ARCH_DISTDIR}/${MACOSX_APP_NAME}/ 2>/dev/null
-	-rm -rf ${ARCH_DISTDIR}/modbuild/ 2>/dev/null

+ 4 - 8
macosx/app/Makefile

@@ -2,12 +2,12 @@
 
 MODULE_TOPDIR = ../..
 
-include $(MODULE_TOPDIR)/include/Make/Platform.make
-include $(MODULE_TOPDIR)/include/Make/Grass.make
+include $(MODULE_TOPDIR)/include/Make/Vars.make
+MOD_OBJS = Info.plist GRASS.scpt grass.sh main.o
 
 EXTRA_INC = 
 EXTRA_CFLAGS = 
-XTRA_LDFLAGS = -framework Cocoa -framework AppleScriptKit
+EXTRA_LDFLAGS = -framework Cocoa -framework AppleScriptKit
 ifndef MACOSX_APP_NAME
 MACOSX_APP_NAME = GRASS-${GRASS_VERSION_MAJOR}.${GRASS_VERSION_MINOR}.app
 endif
@@ -15,10 +15,6 @@ APPDIR = $(ARCH_DISTDIR)/${MACOSX_APP_NAME}/Contents
 MAKE_DIR_CMD = mkdir -p -m 755
 GRASS_VERSION_BUILD = `/bin/date "+%y%m%d"`
 
-OBJS = Info.plist GRASS.scpt grass.sh main.o
-
-ARCH_OBJS := $(foreach obj,$(OBJS),$(OBJDIR)/$(obj)) 
-
 # ugly hack - assume gdal prefix starts with -L flag
 ifndef GDAL_BIN
 GDAL_BIN = `echo "${GDALLIBS}" | sed -e "s,-L,," -e "s,/lib.*$$,/bin,"`
@@ -49,7 +45,7 @@ $(OBJDIR)/main.o: main.m
 
 $(APPDIR)/MacOS/GRASS: $(OBJDIR)/main.o
 	-$(MAKE_DIR_CMD) ${APPDIR}/MacOS
-	$(CC) $(LDFLAGS) -o ${APPDIR}/MacOS/GRASS $(OBJDIR)/main.o $(XTRA_LDFLAGS)
+	$(CC) $(LDFLAGS) -o ${APPDIR}/MacOS/GRASS $(OBJDIR)/main.o $(EXTRA_LDFLAGS)
 
 $(OBJDIR)/Info.plist: Info.plist.in
 	$(MAKE_DIR_CMD) $(OBJDIR)

+ 1 - 5
macosx/modbuild/Makefile

@@ -2,8 +2,7 @@
 
 MODULE_TOPDIR = ../..
 
-include $(MODULE_TOPDIR)/include/Make/Platform.make
-include $(MODULE_TOPDIR)/include/Make/Grass.make
+include $(MODULE_TOPDIR)/include/Make/Other.make
 
 ifndef MACOSX_APP_NAME
 	MACOSX_APP_NAME = GRASS-${GRASS_VERSION_MAJOR}.${GRASS_VERSION_MINOR}.app
@@ -58,6 +57,3 @@ modbuild: ReadMe.rtf
 	mkdir -p $(ARCH_DISTDIR)/modbuild/tools/g.html2man
 	-cp $(MODULE_TOPDIR)/tools/g.html2man/g.html2man $(ARCH_DISTDIR)/modbuild/tools/g.html2man/
 	-cp $(MODULE_TOPDIR)/tools/mkhtml.sh $(ARCH_DISTDIR)/modbuild/tools/
-
-clean: 
-	

+ 0 - 1
misc/Makefile

@@ -7,4 +7,3 @@ include $(MODULE_TOPDIR)/include/Make/Dir.make
 
 default: parsubdirs
 
-clean: cleansubdirs

+ 0 - 1
ps/Makefile

@@ -8,5 +8,4 @@ include $(MODULE_TOPDIR)/include/Make/Dir.make
 
 default: parsubdirs
 
-clean: cleansubdirs
 

+ 1 - 2
raster/Makefile

@@ -121,7 +121,7 @@ CXXBASED = r.terraflow
 
 TIFFBASED = r.out.tiff
 
-include $(MODULE_TOPDIR)/include/Make/Platform.make
+include $(MODULE_TOPDIR)/include/Make/Vars.make
 
 #compile if GDAL present:
 ifneq ($(USE_GDAL),)
@@ -157,4 +157,3 @@ default: htmldir
 
 htmldir: parsubdirs 
 
-clean: cleansubdirs

+ 0 - 1
raster/r.le/Makefile

@@ -12,4 +12,3 @@ include $(MODULE_TOPDIR)/include/Make/Dir.make
 
 default: parsubdirs
 
-clean: cleansubdirs

+ 0 - 1
raster/r.li/Makefile

@@ -25,7 +25,6 @@ include $(MODULE_TOPDIR)/include/Make/Dir.make
 
 default: parsubdirs htmldir
 
-clean: cleansubdirs
 
 $(SUBDIRS1): r.li.daemon
 

+ 0 - 0
raster/r.mapcalc/Makefile


Daži faili netika attēloti, jo izmaiņu fails ir pārāk liels