From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (from weis@localhost) by pauillac.inria.fr (8.7.6/8.7.3) id SAA28514 for caml-redistribution; Wed, 11 Dec 1996 18:56:11 +0100 (MET) Received: from concorde.inria.fr (concorde.inria.fr [192.93.2.39]) by pauillac.inria.fr (8.7.6/8.7.3) with ESMTP id SAA27309 for ; Wed, 11 Dec 1996 18:19:58 +0100 (MET) Received: from simon.cs.cornell.edu (SIMON.CS.CORNELL.EDU [128.84.154.10]) by concorde.inria.fr (8.7.6/8.7.1) with ESMTP id SAA05067 for ; Wed, 11 Dec 1996 18:19:55 +0100 (MET) Received: from cloyd.cs.cornell.edu (CLOYD.CS.CORNELL.EDU [128.84.227.15]) by simon.cs.cornell.edu (8.8.3/8.8.3/R-1.7) with ESMTP id MAA23744 for ; Wed, 11 Dec 1996 12:19:50 -0500 (EST) Received: from verdandi.cs.cornell.edu (VERDANDI.CS.CORNELL.EDU [128.84.254.202]) by cloyd.cs.cornell.edu (8.8.3/8.8.3/M-1.8) with ESMTP id MAA20180 for ; Wed, 11 Dec 1996 12:19:48 -0500 (EST) Received: (from hayden@localhost) by verdandi.cs.cornell.edu (8.8.3/8.8.3/C-1.2) id MAA16014; Wed, 11 Dec 1996 12:19:45 -0500 (EST) Message-Id: <199612111719.MAA16014@verdandi.cs.cornell.edu> To: caml-list@pauillac.inria.fr Subject: Re: Ocamlopt might output files in another directory! In-reply-to: Your message of "Tue, 10 Dec 1996 09:07:43 +0100." <199612100807.JAA03588@soleil.serma.cea.fr> Date: Wed, 11 Dec 1996 12:19:44 -0500 From: Mark Hayden Sender: weis We have this problem as well. We structure my source files into multiple directories and want the .cm* files to be put somewhere else. Our solution is to use a separate ML program that executes ocamlc/opt and then moves the output files to a destination directory. This program essentially implements the -o option found in C compilers. It would be much nicer if the Ocaml compilers supported such an option directly. --Mark >Hello All, > >May I suggest that Ocaml could have the possibility to write all it >machine or system dependent files elsewhere? > >I'm working in a multiplatform environnement. (We have Suns/SunOS5, >HPs/HPUX10, PC/Linux2 on the same network). > >So, in C or related langages, I do like to put object and executable >files elsewhere. I'm using GNU make and just have to write in my >GNUmakefile > > > > ## the machine suffix > ifndef MACHSUFFIX > export MACHSUFFIX := $(shell $machsuffix) > endif > > ## the top source directory > ifndef TOPDIR > export TOPDIR := $(shell pwd) > endif > > ## MACHSUFFIX is "x86-linux" on PC/Linux, "sparc-sunos5" on > ## Sparc/SunOS5, "hppa-hpux10" on "HP/PA/HPUX10 > > OBJDIR := $(HOME)/bin.$(MACHSUFFIX)/Objs > > vpath %.o $(OBJDIR) > > $(OBJDIR)/%.o: %.c > $(COMPILE.c) $< $(OUTPUT_OPTION) > > sed_depend_objcmd:= 1,$$s:\([a-zA-Z0-9_]*\.o\):\$$(OBJDIR)/\1: > sed_depend_inccmd:= 1,$$s:\($(TOPDIR)\):\$$(TOPDIR): > define sed_depend > $(SED) -e '$(sed_depend_inccmd)' -e '$(sed_depend_objcmd)' > endef > > CSRCFILES = foo.c bar.c > COBJFILES := $(patsubst %.c, $(OBJDIR)/%.o, $(CSRCFILES)) > > DEPEND:=_depend.$(MACHSUFFIX).mk > > -include $(DEPEND) > > depend: > date "+ Making depend at %D %T %n" > date "+## $(DEPEND) file generated on %e %b %Y at %R" > $(DEPEND) > $(CC) -MM $(CFLAGS) $(CPPFLAGS) $(CSRCFILES) | $(sed_depend) >> $(DEPEND) > > > $(OBJDIR)/prog: $(COBJFILES) > $(LINK.c) -o $@ $< $(LOADIBES) > > >So with this trick I always do make in the source directory, and, >depending of the machine, it build object and executable file in the >system dependent $(OBJDIR). > >I would like to use a similar trick with ocamlopt. But this requires >that all system dependent files, include *.cmx and *.o, go elsewhere. -the -o >ocamlopt flags does not do the trick) > >So I wish a -objdir flag to the ocaml driver which gives the output >directory! > >More generally, I think that a compiler should be able to compile in a >directory in which it just have read, not write, permissions. > > >I believe these changes are easy to fix -in >ocaml-1.03/driver/{compile,compileopt}.ml- I might even do them if >some people (besides myself) are interested! > > > >N.B. Any opinions expressed here are solely mine, and not of my organization. >N.B. Les opinions exprimees ici me sont personnelles et n engagent pas le CEA. > > >---------------------------------------------------------------------- >Basile STARYNKEVITCH ---- Commissariat à l Energie Atomique >DRN/DMT/SERMA * CEA/Saclay bat.470 * 91191 GIF/YVETTE CEDEX * France >fax: (33) 01,69.08.85.68; phone: 01,69.08.40.66; home: 01,46.65.45.53 >email: Basile . Starynkevitch @ cea . fr (but remove white space) >I speak french, english, russian. Je parle français, anglais, russe. >---------------------------------------------------------------------- > > >