From: Vladislav B. <vs...@vl...> - 2010-09-04 17:40:26
|
Richard Sharpe, on 09/04/2010 07:50 PM wrote: > 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 Hmm, SVN code should be in the debug build by default, but the above is release. The rest looks good for me. > 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 > > > |