Re: Faster install-sh in C
От | Bruce Momjian |
---|---|
Тема | Re: Faster install-sh in C |
Дата | |
Msg-id | 200503232023.j2NKNFT05186@candle.pha.pa.us обсуждение исходный текст |
Ответ на | Re: Faster install-sh in C (Tom Lane <tgl@sss.pgh.pa.us>) |
Ответы |
Re: Faster install-sh in C
|
Список | pgsql-patches |
Tom Lane wrote: > Alvaro Herrera <alvherre@dcc.uchile.cl> writes: > > Also, keep in my that this C install program has the extra feature of > > being able to install multiple files on one invocation, per suggestion > > from Tom Lane. This allows us to save the nested for-loop in > > src/include/Makefile. GNU install (available on my system) also has > > this capability, but would we be able to use the trick if we had to > > cater for the lowest common denominator found on other, non-GNU-enabled > > systems? > > We would definitely not ... and my suspicion is that that is the largest > single component of the available speedup. OK, what is 'install' doing for us that 'cp' and 'chmod' would not already do? The following patch reduces the 'gmake install' in /src/include from 8 seconds to 0.8 seconds. Oh, and for testing I use a sourceforge shell farm account, and a HP testdrive shell acount that gives me access to almost every operating system. -- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610) 359-1001 + If your life is a hard drive, | 13 Roberts Road + Christ can be your backup. | Newtown Square, Pennsylvania 19073 Index: src/include/Makefile =================================================================== RCS file: /cvsroot/pgsql/src/include/Makefile,v retrieving revision 1.19 diff -c -c -r1.19 Makefile *** src/include/Makefile 6 Jan 2005 21:00:24 -0000 1.19 --- src/include/Makefile 23 Mar 2005 20:22:56 -0000 *************** *** 41,49 **** $(INSTALL_DATA) $$file $(DESTDIR)$(includedir_server)/`basename $$file` || exit; \ done for dir in $(SUBDIRS); do \ ! for file in $(srcdir)/$$dir/*.h; do \ ! $(INSTALL_DATA) $$file $(DESTDIR)$(includedir_server)/$$dir/`basename $$file` || exit; \ ! done \ done installdirs: --- 41,48 ---- $(INSTALL_DATA) $$file $(DESTDIR)$(includedir_server)/`basename $$file` || exit; \ done for dir in $(SUBDIRS); do \ ! cp $(srcdir)/$$dir/*.h $(DESTDIR)$(includedir_server)/$$dir/ || exit; \ ! chmod 644 $(DESTDIR)$(includedir_server)/$$dir/*.h || exit; \ done installdirs:
В списке pgsql-patches по дате отправления: