Skip to contentSkip to conversation

"make clean" has problem?

LTP Mitani 2 participants 3 messages Jan 12, 2010 Kbuild

lore
Share & tools
lore

Mitani

author
#0 lore raw

Hi,

There is a problem about "make clean"(./Makefile), I think. Before the following fix added at 12/11/2009, "/opt/ltp/" directory was deleted by "make clean":
http://ltp.cvs.sourceforge.net/viewvc/ltp/ltp/Makefile?r1=1.53&r2=1.54
But after this fix, "make clean" could not remove "/opt/ltp/" directory.

If we test new release cvs and there are fixes about permissions in new cvs, we can't do the test correctly.
Because, if "/opt/ltp/" directory remained and new cvs's file has same time-stamp and different permissions from old cvs's file, the install ended with "make: Nothing to be done for `install'." message and this new file can't be installed.
Then test cases that fixed about permissions ended in "FAIL". In recent cvs, To test correctly, we must remove "/opt/ltp/" directory by manual operation before trying "make install".

I think that it is right specification to remove "/opt/ltp/" directory when "make clean" is executed.

This problem occurred because "INSTALL_IN_BUILD_TREE := 1" is defined in "./include/mk/env_pre.mk" included in "${LTPROOT}/Makefile", I think. "$(prefix)" of a judgment of "ifeq ($(strip $(DESTDIR)$(prefix)),)" doesn't have value, therefor the result of the judgment becomes "true", and "INSTALL_IN_BUILD_TREE := 1" was defined.

So, it is neccessary to define "$(prefix)" by including "./include/mk/ config.mk" before including "./include/mk/env_pre.mk", isn't it?

The following patch can fix this problem:
============

Makefile renamed from Makefile.orig +1 -0
@@ -27,6 +27,7 @@
 
 top_srcdir		?= $(CURDIR)
 
+include $(top_srcdir)/include/mk/config.mk
 include $(top_srcdir)/include/mk/env_pre.mk
 include $(top_srcdir)/include/mk/automake.mk
 

============

Thank you--

-Tomonori Mitani

------------------------------------------------------------------------------
This SF.Net email is sponsored by the Verizon Developer Community Take advantage of Verizon's best-in-class app development support A streamlined, 14 day to market process makes app distribution fast and easy Join now and get one step closer to millions of Verizon customers
http://p.sf.net/sfu/verizon-dev2dev
_______________________________________________
Ltp-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ltp-list

#1 lore raw
Quoted 54 lines · Mitani

Hi,

There is a problem about "make clean"(./Makefile), I think. Before the following fix added at 12/11/2009, "/opt/ltp/" directory was deleted by "make clean":
http://ltp.cvs.sourceforge.net/viewvc/ltp/ltp/Makefile?r1=1.53&r2=1.54
But after this fix, "make clean" could not remove "/opt/ltp/" directory.

If we test new release cvs and there are fixes about permissions in new cvs, we can't do the test correctly.
Because, if "/opt/ltp/" directory remained and new cvs's file has same time-stamp and different permissions from old cvs's file, the install ended with "make: Nothing to be done for `install'." message and this new file can't be installed.
Then test cases that fixed about permissions ended in "FAIL". In recent cvs, To test correctly, we must remove "/opt/ltp/" directory by manual operation before trying "make install".

I think that it is right specification to remove "/opt/ltp/" directory when "make clean" is executed.

This problem occurred because "INSTALL_IN_BUILD_TREE := 1" is defined in "./include/mk/env_pre.mk" included in "${LTPROOT}/Makefile", I think. "$(prefix)" of a judgment of "ifeq ($(strip $(DESTDIR)$(prefix)),)" doesn't have value, therefor the result of the judgment becomes "true", and "INSTALL_IN_BUILD_TREE := 1" was defined.

So, it is neccessary to define "$(prefix)" by including "./include/mk/ config.mk" before including "./include/mk/env_pre.mk", isn't it?

The following patch can fix this problem:
============

Makefile    2010-01-12 09:49:29.000000000 +0900 renamed from Makefile.orig       2010-01-09 17:37:04.000000000 +0900 +1 -0
@@ -27,6 +27,7 @@
 
  top_srcdir             ?= $(CURDIR)
 
+include $(top_srcdir)/include/mk/config.mk

 include $(top_srcdir)/include/mk/env_pre.mk
 include $(top_srcdir)/include/mk/automake.mk

============

Thank you--

-Tomonori Mitani

Quoted 9 lines

------------------------------------------------------------------------------
This SF.Net email is sponsored by the Verizon Developer Community Take advantage of Verizon's best-in-class app development support A streamlined, 14 day to market process makes app distribution fast and easy Join now and get one step closer to millions of Verizon customers
http://p.sf.net/sfu/verizon-dev2dev
_______________________________________________
Ltp-list mailing list
[email protected]

Ugh... good point, wrong file (env_pre.mk):

94 ifneq ($(abs_builddir),$(abs_srcdir))
95 OUT_OF_BUILD_TREE := 1
96 else
97 # Stub support for installing directly in the build tree; the
support is not
98 # there yet, but the variable itself has its own uses... 99 ifeq ($(strip $(DESTDIR)$(prefix)),)
100 INSTALL_IN_BUILD_TREE := 1
101 endif
102 endif
103
104 # We can piece together where we're located in the source and
object trees with
105 # just these two vars and $(CURDIR).
106 export abs_top_srcdir abs_top_builddir
107
108 -include $(top_builddir)/include/mk/config.mk
109
110 .DEFAULT_GOAL := all

I'll fix this in <1 hour.
Thanks,
-Garrett

------------------------------------------------------------------------------
This SF.Net email is sponsored by the Verizon Developer Community Take advantage of Verizon's best-in-class app development support A streamlined, 14 day to market process makes app distribution fast and easy Join now and get one step closer to millions of Verizon customers
http://p.sf.net/sfu/verizon-dev2dev
_______________________________________________
Ltp-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ltp-list

#2 lore raw
Quoted 87 lines · Garrett Cooper
Quoted 54 lines · Mitani

Hi,

There is a problem about "make clean"(./Makefile), I think. Before the following fix added at 12/11/2009, "/opt/ltp/" directory was deleted by "make clean":
http://ltp.cvs.sourceforge.net/viewvc/ltp/ltp/Makefile?r1=1.53&r2=1.54
But after this fix, "make clean" could not remove "/opt/ltp/" directory.

If we test new release cvs and there are fixes about permissions in new cvs, we can't do the test correctly.
Because, if "/opt/ltp/" directory remained and new cvs's file has same time-stamp and different permissions from old cvs's file, the install ended with "make: Nothing to be done for `install'." message and this new file can't be installed.
Then test cases that fixed about permissions ended in "FAIL". In recent cvs, To test correctly, we must remove "/opt/ltp/" directory by manual operation before trying "make install".

I think that it is right specification to remove "/opt/ltp/" directory when "make clean" is executed.

This problem occurred because "INSTALL_IN_BUILD_TREE := 1" is defined in "./include/mk/env_pre.mk" included in "${LTPROOT}/Makefile", I think. "$(prefix)" of a judgment of "ifeq ($(strip $(DESTDIR)$(prefix)),)" doesn't have value, therefor the result of the judgment becomes "true", and "INSTALL_IN_BUILD_TREE := 1" was defined.

So, it is neccessary to define "$(prefix)" by including "./include/mk/ config.mk" before including "./include/mk/env_pre.mk", isn't it?

The following patch can fix this problem:
============

Makefile    2010-01-12 09:49:29.000000000 +0900 renamed from Makefile.orig       2010-01-09 17:37:04.000000000 +0900 +1 -0
@@ -27,6 +27,7 @@
 
  top_srcdir             ?= $(CURDIR)
 
+include $(top_srcdir)/include/mk/config.mk

 include $(top_srcdir)/include/mk/env_pre.mk
 include $(top_srcdir)/include/mk/automake.mk

============

Thank you--

-Tomonori Mitani

Quoted 9 lines

------------------------------------------------------------------------------
This SF.Net email is sponsored by the Verizon Developer Community Take advantage of Verizon's best-in-class app development support A streamlined, 14 day to market process makes app distribution fast and easy Join now and get one step closer to millions of Verizon customers
http://p.sf.net/sfu/verizon-dev2dev
_______________________________________________
Ltp-list mailing list
[email protected]

Ugh... good point, wrong file (env_pre.mk):

  94 ifneq ($(abs_builddir),$(abs_srcdir))
  95 OUT_OF_BUILD_TREE         := 1
  96 else
  97 # Stub support for installing directly in the build tree; the support is not
  98 # there yet, but the variable itself has its own uses... 99 ifeq ($(strip $(DESTDIR)$(prefix)),)
 100 INSTALL_IN_BUILD_TREE             := 1
 101 endif
 102 endif
 103
 104 # We can piece together where we're located in the source and object trees with
 105 # just these two vars and $(CURDIR).
 106 export abs_top_srcdir abs_top_builddir
 107
 108 -include $(top_builddir)/include/mk/config.mk
 109
 110 .DEFAULT_GOAL                     := all

Quoted 2 lines

I'll fix this in <1 hour.
Thanks,

Fixed -- thanks!
-Garrett

------------------------------------------------------------------------------
This SF.Net email is sponsored by the Verizon Developer Community Take advantage of Verizon's best-in-class app development support A streamlined, 14 day to market process makes app distribution fast and easy Join now and get one step closer to millions of Verizon customers
http://p.sf.net/sfu/verizon-dev2dev
_______________________________________________
Ltp-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ltp-list