From: Richard S. <rea...@gm...> - 2010-09-04 15:50:39
|
On Sat, Sep 4, 2010 at 5:07 AM, Vladislav Bolkhovitin <vs...@vl...> wrote: > Richard Sharpe, on 09/04/2010 07:29 AM wrote: >>> Hmmm, on a freshly checked out scst, I get this: >>> >>> make release2debug >>> cd scst&& make release2debug >>> make[1]: Entering directory `/root/scst/trunk/scst' >>> cd src&& make release2debug >>> make[2]: Entering directory `/root/scst/trunk/scst/src' >>> sed -i.aa s/"#EXTRA_CFLAGS += >>> \-DCONFIG_SCST_EXTRACHECKS"/"EXTRA_CFLAGS += >>> \-DCONFIG_SCST_EXTRACHECKS"/ Makefile >>> sed failed >> >> OK, I figured it out. I should do 'make debug2release' first. >> >> Can I suggest that the shell scripting and the defines be turned into >> an include or something? That way they only need to be defined in one >> place, and any Makefile can get this facility by including the correct >> file. > > Yes, that's possible and this is, basically, how the switch between procfs > and sysfs builds is done. So, I won't object if you redo it that way. Only > don't forget 2 things: > > 1. Because of the in-kernel build possibility, we can't have a separate > include file for those option and need to use scst.h and friends. > > 2. User space programs not including scst.h should also be affected by the > switch. > > 3. The debug on/off statements should be deleted on the in-kernel patches > generation, i.e. must be under "#ifndef GENERATING_UPSTREAM_PATCH". That's too much work :-) Here is the patch I will commit after I have tested it a little more ... I notice that I have to do some stuff to enable and disable proc as well :-) Index: Makefile =================================================================== --- Makefile (revision 2046) +++ Makefile (working copy) @@ -12,10 +12,11 @@ EXTRA_CFLAGS += -Wextra -Wno-unused-par #EXTRA_CFLAGS += -DCONFIG_SCST_LOCAL_FORCE_DIRECT_PROCESSING -EXTRA_CFLAGS += -DCONFIG_SCST_EXTRACHECKS +#EXTRA_CFLAGS += -DCONFIG_SCST_EXTRACHECKS -#EXTRA_CFLAGS += -DCONFIG_SCST_TRACING -EXTRA_CFLAGS += -DCONFIG_SCST_DEBUG +EXTRA_CFLAGS += -DCONFIG_SCST_TRACING + +#EXTRA_CFLAGS += -DCONFIG_SCST_DEBUG -g -fno-inline -fno-inline-functions ifeq ($(KVER),) ifeq ($(KDIR),) @@ -68,4 +69,36 @@ clean: extraclean: clean +debug2release: + sed -i.aa s/"^EXTRA_CFLAGS += \-DCONFIG_SCST_EXTRACHECKS"/"#EXTRA_CFLAGS += \-DCONFIG_SCST_EXTRACHECKS"/ Makefile + @cmp Makefile Makefile.aa >/dev/null; if [[ $$? = 0 ]]; then rm Makefile.aa; echo "sed failed"; false; fi + sed -i.aa s/"#EXTRA_CFLAGS += \-DCONFIG_SCST_TRACING"/"EXTRA_CFLAGS += \-DCONFIG_SCST_TRACING"/ Makefile + @cmp Makefile Makefile.aa >/dev/null; if [[ $$? = 0 ]]; then rm Makefile.aa; echo "sed failed"; false; fi + sed -i.aa s/"^EXTRA_CFLAGS += \-DCONFIG_SCST_DEBUG -g -fno-inline -fno-inline-functions"/"#EXTRA_CFLAGS += \-DCONFIG_SCST_DEBUG -g -fno-inline -fno-inline-functions"/ Makefile + @cmp Makefile Makefile.aa >/dev/null; if [[ $$? = 0 ]]; then rm Makefile.aa; echo "sed failed"; false; fi + rm Makefile.aa + +release2debug: + sed -i.aa s/"#EXTRA_CFLAGS += \-DCONFIG_SCST_EXTRACHECKS"/"EXTRA_CFLAGS += \-DCONFIG_SCST_EXTRACHECKS"/ $(KMOD)/Makefile + @cmp $(KMOD)/Makefile $(KMOD)/Makefile.aa >/dev/null; if [[ $$? = 0 ]]; then rm $(KMOD)/Makefile.aa; echo "sed failed"; false; fi + sed -i.aa s/"^EXTRA_CFLAGS += \-DCONFIG_SCST_TRACING"/"#EXTRA_CFLAGS += \-DCONFIG_SCST_TRACING"/ $(KMOD)/Makefile + @cmp $(KMOD)/Makefile $(KMOD)/Makefile.aa >/dev/null; if [[ $$? = 0 ]]; then rm $(KMOD)/Makefile.aa; echo "sed failed"; false; fi + sed -i.aa s/"#EXTRA_CFLAGS += \-DCONFIG_SCST_DEBUG -g -fno-inline -fno-inline-functions"/"EXTRA_CFLAGS += \-DCONFIG_SCST_DEBUG -g -fno-inline -fno-inline-functions"/ $(KMOD)/Makefile + @cmp $(KMOD)/Makefile $(KMOD)/Makefile.aa >/dev/null; if [[ $$? = 0 ]]; then rm $(KMOD)/Makefile.aa; echo "sed failed"; false; fi + rm $(KMOD)/Makefile.aa + +debug2perf: + sed -i.aa s/"^EXTRA_CFLAGS += \-DCONFIG_SCST_EXTRACHECKS"/"#EXTRA_CFLAGS += \-DCONFIG_SCST_EXTRACHECKS"/ $(KMOD)/Makefile + @cmp $(KMOD)/Makefile $(KMOD)/Makefile.aa >/dev/null; if [[ $$? = 0 ]]; then rm $(KMOD)/Makefile.aa; echo "sed failed"; false; fi + sed -i.aa s/"^EXTRA_CFLAGS += \-DCONFIG_SCST_DEBUG -g -fno-inline -fno-inline-functions"/"#EXTRA_CFLAGS += \-DCONFIG_SCST_DEBUG -g -fno-inline -fno-inline-functions"/ $(KMOD)/Makefile + @cmp $(KMOD)/Makefile $(KMOD)/Makefile.aa >/dev/null; if [[ $$? = 0 ]]; then rm $(KMOD)/Makefile.aa; echo "sed failed"; false; fi + rm $(KMOD)/Makefile.aa + +perf2debug: + sed -i.aa s/"#EXTRA_CFLAGS += \-DCONFIG_SCST_EXTRACHECKS"/"EXTRA_CFLAGS += \-DCONFIG_SCST_EXTRACHECKS"/ $(KMOD)/Makefile + @cmp $(KMOD)/Makefile $(KMOD)/Makefile.aa >/dev/null; if [[ $$? = 0 ]]; then rm $(KMOD)/Makefile.aa; echo "sed failed"; false; fi + sed -i.aa s/"#EXTRA_CFLAGS += \-DCONFIG_SCST_DEBUG -g -fno-inline -fno-inline-functions"/"EXTRA_CFLAGS += \-DCONFIG_SCST_DEBUG -g -fno-inline -fno-inline-functions"/ $(KMOD)/Makefile + @cmp $(KMOD)/Makefile $(KMOD)/Makefile.aa >/dev/null; if [[ $$? = 0 ]]; then rm $(KMOD)/Makefile.aa; echo "sed failed"; false; fi + rm $(KMOD)/Makefile.aa + .PHONY: all tgt install uninstall clean extraclean -- Regards, Richard Sharpe |