This is the mail archive of the gdb-patches@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [rfa] rename insight to insight


Some tweaks,

Anything in the gdbtk sub-directory isn't my problem -- Keith has already approved it.


Index: Makefile.in
===================================================================
RCS file: /cvs/src/src/gdb/Makefile.in,v
retrieving revision 1.249
diff -u -r1.249 Makefile.in
--- Makefile.in 25 Aug 2002 21:43:05 -0000 1.249
+++ Makefile.in 26 Aug 2002 18:25:23 -0000
@@ -868,7 +868,7 @@
.c.o:
$(CC) -c $(INTERNAL_CFLAGS) $<
-all: gdb$(EXEEXT) $(CONFIG_ALL)
+all: insight$(EXEEXT) gdb$(EXEEXT) $(CONFIG_ALL)
@$(MAKE) $(FLAGS_TO_PASS) DO=all "DODIRS=`echo $(SUBDIRS) | sed 's/testsuite//'`" subdir_do
Have a look at the SUBDIR_GDBTK_... variables. That way insight/gdbtk is more like a plug-in. (we're (Red Hat) trying to remove gdbtk references from gdb/Makefile.in).

 installcheck:
@@ -898,28 +898,46 @@
 # install-only is intended to address that need.
 install: all install-only
 install-only: $(CONFIG_INSTALL)
-	transformed_name=`t='$(program_transform_name)'; \
+	$(srcdir)/../mkinstalldirs $(bindir) ; \
+	transformed_name_gdb=`t='$(program_transform_name)'; \
 			  echo gdb | sed -e $$t` ; \
-		if test "x$$transformed_name" = x; then \
-		  transformed_name=gdb ; \
+		if test "x$$transformed_name_gdb" = x; then \
+		  transformed_name_gdb=gdb ; \
+		else \
+		  true ; \
+		fi ; \
This can be moved to a separate install-gdbtk target (hmm, yes there is already one).

+ if test -d "${srcdir}/gdbtk" ; then \
+ transformed_name_insight=`t='$(program_transform_name)'; \
+ echo insight | sed -e $$t` ; \
+ if test "x$$transformed_name_insight" = x; then \
+ transformed_name_insight=insight ; \
else \
true ; \
fi ; \
- $(srcdir)/../mkinstalldirs $(bindir) ; \
- $(INSTALL_PROGRAM) gdb$(EXEEXT) $(bindir)/$$transformed_name$(EXEEXT) ; \
- $(srcdir)/../mkinstalldirs $(man1dir) ; \
- $(INSTALL_DATA) $(srcdir)/gdb.1 $(man1dir)/$$transformed_name.1
+ $(INSTALL_PROGRAM) insight$(EXEEXT) $(bindir)/$$transformed_name_insight$(EXEEXT) ; \
+ fi; \
+ $(INSTALL_PROGRAM) gdb$(EXEEXT) $(bindir)/$$transformed_name_gdb$(EXEEXT) ; \
+ $(srcdir)/../mkinstalldirs $(man1dir) ; \
+ $(INSTALL_DATA) $(srcdir)/gdb.1 $(man1dir)/$$transformed_name.1
@$(MAKE) DO=install "DODIRS=$(SUBDIRS)" $(FLAGS_TO_PASS) subdir_do uninstall: force $(CONFIG_UNINSTALL)
- transformed_name=`t='$(program_transform_name)'; \
+ transformed_name_gdb=`t='$(program_transform_name)'; \
echo gdb | sed -e $$t` ; \
- if test "x$$transformed_name" = x; then \
+ if test "x$$transformed_name_gdb" = x; then \
transformed_name=gdb ; \
else \
true ; \
fi ; \
- rm -f $(bindir)/$$transformed_name$(EXEEXT) $(man1dir)/$$transformed_name.1
This can be moved to uninstall-gdbtk:

+ rm -f $(bindir)/$$transformed_name_gdb$(EXEEXT) $(man1dir)/$$transformed_name.1
+ transformed_name_insight=`t='$(program_transform_name)'; \
+ echo insight | sed -e $$t` ; \
+ if test "x$$transformed_name_insight" = x; then \
+ transformed_name_insight=insight ; \
+ else \
+ true ; \
+ fi ; \
+ rm -f $(bindir)/$$transformed_name_insight$(EXEEXT) $(man1dir)/$$transformed_name.1
rm -rf $(GDBTK_LIBRARY)
@$(MAKE) DO=uninstall "DODIRS=$(SUBDIRS)" $(FLAGS_TO_PASS) subdir_do @@ -1008,12 +1026,22 @@
init.o: init.c $(defs_h) $(call_cmds_h)
Yes.

 # Removing the old gdb first works better if it is running, at least on SunOS.
-gdb$(EXEEXT): main.o libgdb.a $(CONFIG_OBS) $(ADD_DEPS) $(CDEPS) $(TDEPLIBS)
+gdb$(EXEEXT): gdb.o main.o libgdb.a $(CONFIG_OBS) $(ADD_DEPS) $(CDEPS) $(TDEPLIBS)
 	rm -f gdb$(EXEEXT)
 	$(HLDENV) $(CC_LD) $(INTERNAL_LDFLAGS) $(WIN32LDAPP) -o gdb$(EXEEXT) \
-	main.o libgdb.a $(CONFIG_OBS) $(TDEPLIBS) $(TUI_LIBRARY) $(CLIBS)\
+	gdb.o libgdb.a main.o $(CONFIG_OBS) $(TDEPLIBS) $(TUI_LIBRARY) $(CLIBS)\
 	$(LOADLIBES)
Per keith's coments, move it to the same block as install-gdbtk.

+# Removing the old gdb first works better if it is running, at least on SunOS.
+# Only make the insight executable if gdbtk is available.
+insight$(EXEEXT): insight.o main.o libgdb.a $(CONFIG_OBS) $(ADD_DEPS) $(CDEPS) $(TDEPLIBS)
+ rm -f insight$(EXEEXT)
+ if [ -d "${srcdir}/gdbtk" ] ; then \
+ $(HLDENV) $(CC_LD) $(INTERNAL_LDFLAGS) $(WIN32LDAPP) -o insight$(EXEEXT) \
+ insight.o libgdb.a main.o $(CONFIG_OBS) $(TDEPLIBS) $(TUI_LIBRARY) $(CLIBS)\
+ $(LOADLIBES) ; \
+ fi ; +
nlm: force
rootme=`pwd`; export rootme; $(MAKE) $(TARGET_FLAGS_TO_PASS) DO=all DODIRS=nlm subdir_do
@@ -1106,6 +1134,7 @@
rm -f init.c version.c
rm -f gdb$(EXEEXT) core make.log
rm -f gdb[0-9]$(EXEEXT)
This can be made part of clean-gdbtk:

+ rm -f insight$(EXEEXT)
# This used to depend on c-exp.tab.c m2-exp.tab.c TAGS
# I believe this is wrong; the makefile standards for distclean just
@@ -1724,6 +1753,8 @@
$(language_h) $(gdb_string_h) $(readline_headers) $(remote_h) \
$(linespec_h) $(regcache_h) $(completer_h)
Ok,

+gdb.o: gdb.c main.o $(defs_h)
+
gdbarch.o: gdbarch.c $(defs_h) $(arch_utils_h) $(gdbcmd_h) $(inferior_h) \
$(gdb_string_h) $(symtab_h) $(frame_h) $(inferior_h) $(breakpoint_h) \
$(gdb_wait_h) $(gdbcore_h) $(gdbcmd_h) $(target_h) $(gdbthread_h) \
@@ -1753,7 +1784,7 @@
gnu-v3-abi.o: gnu-v3-abi.c $(defs_h) $(value_h) $(cp_abi_h) $(demangle_h) \
$(gdb_assert_h) $(gdb_string_h)
- +
h8300-tdep.o: h8300-tdep.c $(defs_h) $(frame_h) $(symtab_h) $(dis_asm_h) \
$(gdbcmd_h) $(gdbtypes_h) $(gdbcore_h) $(gdb_string_h) $(value_h) \
$(regcache_h)
@@ -1854,6 +1885,8 @@
inftarg.o: inftarg.c $(gdb_wait_h) $(defs_h) $(gdbcore_h) $(inferior_h) \
$(target_h) $(terminal_h) $(command_h)
This one can be moved to the gdbtk section of the makefile.

+/* from main.c  */
+extern int captured_main (void *);
+
+struct captured_main_args
+  {
+    int argc;
+    char **argv;
Extern's shouldn't be in .c files. What about instead creating a "main.h" file (for want of a better name) that contains:

struct captured_main_args
{
...
/* Make use_windows a parameter for when someone
eventually manages to make it local or static
or even delete it. */
int use_windows;
};

extern int gdb_main (struct captured_main_args *args);

and then have gdb_main() (in main.c) do the captured call? It would reduce gdb.c to:

main(argv, argc)
{
struct captured_main_args args;
/* For when it changes size. */
memset (&args, 0, sizeof args);
args.... = ..
return gdb_main (&args);
}

The less things that know about that captured call around main, the better :-) Another option would have been to have ``gdb_main (argc, argv, use_windows)'' but that will break the moment someone adds another startup parameter :-(.

BTW, someone is going to eventually end up going through the code and rationalizing interpreter_p and use_windows. That, however, is another separate problem -- here I assume the major objective is to just get the basic build/install framework in place.

Oh, and thanks! This is on one of those very long overdue to do lists.

Andrew


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]