emacs - How can I solve make error, "make[1]: I: Command not found" -
emacs - How can I solve make error, "make[1]: I: Command not found" -
i tried compile emacs-24.4 native windows mingw64-x86_64 packages , gnu create in cygwin x84_64.
after finishing ./configure script, when doing make, got this:
[ -r "src/config.in" ] || ( cd . && autoheader ) cd nt && create \ cc='x86_64-w64-mingw32-gcc -std=gnu99' cflags='-g3 -o2 -gdwarf-2' cppflags='-mtune=generic -i/usr/x86_64-w64-mingw32/sys-root/mingw/include/ -duse_crt_dll=1 -i /cygdrive/d/workspace/emacs-24.4/nt/inc' \ ldflags='' make='make' make[1]: entering directory '/cygdrive/d/workspace/emacs-24.4/nt' . -o coff -o emacs.res ./emacs.rc make[1]: i: command not found makefile:228: recipe target 'emacs.res' failed make[1]: [emacs.res] error 127 (ignored) x86_64-w64-mingw32-gcc -std=gnu99 -mtune=generic -i. -i. -mtune=generic -i/usr/x86_64-w64-mingw32/sys-root/mingw/include/ -duse_crt_dll=1 -i /cygdrive/d/workspace/emacs-24.4/nt/inc -g3 -o2 -gdwarf-2 ./runemacs.c emacs.res -mwindows \ -o runemacs.exe x86_64-w64-mingw32-gcc: error: emacs.res: no such file or directory makefile:224: recipe target 'runemacs.exe' failed make[1]: *** [runemacs.exe] error 1 make[1]: leaving directory '/cygdrive/d/workspace/emacs-24.4/nt' makefile:363: recipe target 'nt' failed make: *** [nt] error 2
btw, alter file build-aux/msys-to-w32 command
sed "/s/pwd/cygpath/g" build-aux/msys-to-w32
to walkaround error when running ./configure
bash: pwd: -w: invalid alternative
here nt/makefile -- have thought how solve error?
### nt/makefile. generated makefile.in configure. # copyright (c) 2013-2014 free software foundation, inc. # file part of gnu emacs. # gnu emacs free software: can redistribute and/or modify # under terms of gnu general public license published # free software foundation, either version 3 of license, or # (at option) later version. # gnu emacs distributed in hope useful, # without warranty; without implied warranty of # merchantability or fitness particular purpose. see # gnu general public license more details. # should have received re-create of gnu general public license # along gnu emacs. if not, see <http://www.gnu.org/licenses/>. # avoid problem on systems `shell' variable might # inherited environment. shell = /bin/sh # ==================== things `configure' edit ==================== cc=x86_64-w64-mingw32-gcc -std=gnu99 cflags=-g3 -o2 -gdwarf-2 version=24.4 ## used in $archlibdir. configuration=x86_64-w64-mingw32 exeext=.exe c_switch_system=-mtune=generic c_switch_machine= profiling_cflags = warn_cflags = werror_cflags = # programme name transformation. transform = s,x,x, # ==================== install things ==================== # default location installation. placed in # subdirectories of directory. default values many of # variables below expressed in terms of one, may # not need alter them. set --prefix alternative # `../configure'. prefix=/cygdrive/d/workspace/emacs # `prefix', used architecture-specific files. # set --exec-prefix alternative `../configure'. exec_prefix=${prefix} # install emacs , other binaries people want # run straight (like etags). set --bindir alternative # `../configure'. bindir=${exec_prefix}/bin # root of directory tree read-only architecture-independent # info files. ${datadir}, ${infodir} , ${mandir} based on this. datarootdir=${prefix}/share # install architecture-independent info files. ${lispdir} # , ${etcdir} subdirectories of this. set # --datadir alternative `../configure'. datadir=${datarootdir} # install , expect executable files run emacs # rather straight users, , other architecture-dependent # data. ${archlibdir} below this. set # --libexecdir alternative `../configure'. libexecdir=${exec_prefix}/libexec # directory local state files programs. localstatedir=${prefix}/var # find source code. set configure # script's `--srcdir' option. however, value of ${srcdir} in # makefile not identical specified --srcdir, # since variable here has `/lib-src' added @ end. # utilize $(srcdir) explicitly in dependencies not depend on vpath. srcdir=. # top-level source directory, set configure. top_srcdir=.. # mingw cppflags may utilize this. abs_top_srcdir=/cygdrive/d/workspace/emacs-24.4 # ==================== emacs-specific directories ==================== # these variables hold values emacs use. # based on values of standard create variables above. # set executables run emacs rather user. # path includes emacs version , configuration name, # multiple configurations multiple versions of emacs may # installed @ once. can set --archlibdir alternative # `../configure'. archlibdir=${libexecdir}/emacs/${version}/${configuration} # ==================== utility programs build ================= # ../configure figures out right values these. install = /usr/bin/install -c install_data = ${install} -m 644 install_program = ${install} install_script = ${install} # default, uphold dignity of our programs. install_strip = mkdir_p = /usr/bin/mkdir -p # ========================== lists of files =========================== # things user might run, should installed in bindir. installables = runemacs${exeext} addpm${exeext} # things emacs runs internally, should not installed in bindir. utilities = cmdproxy${exeext} ddeclient${exeext} # things emacs runs during build process. dont_install = addsection${exeext} # files created linker, i.e., names end in ${exeext}. exe_files = ${installables} ${utilities} ${dont_install} # =========================== configuration =========================== # ms-windows resource files , resource compiler emacsres = emacs.res emacs_manifest = emacs-x64.manifest windres = ## libraries utilize when linking addpm. libs_addpm = -lole32 -luuid ## compilation , linking flags base_cflags = $(c_switch_system) $(c_switch_machine) \ $(warn_cflags) $(werror_cflags) \ -i. -i${srcdir} all_cflags = ${base_cflags} ${profiling_cflags} ${ldflags} ${cppflags} ${cflags} link_cflags = ${base_cflags} ${ldflags} ${cflags} cpp_cflags = ${base_cflags} ${profiling_cflags} ${cppflags} ${cflags} all: ${exe_files} .phony: ## install internal utilities. until installed, can ## run them straight nt/. $(destdir)${archlibdir}: @echo @echo "installing utilities run internally emacs." umask 022; ${mkdir_p} "$(destdir)${archlibdir}" exp_archlibdir=`cd "$(destdir)${archlibdir}" && /bin/pwd`; \ if [ "$$exp_archlibdir" != "`/bin/pwd`" ]; \ file in ${utilities}; \ $(install_program) $(install_strip) $$file "$(destdir)${archlibdir}/$$file" ; \ done ; \ fi .phony: install uninstall mostlyclean clean distclean maintainer-clean .phony: extraclean check tags install: $(destdir)${archlibdir} @echo @echo "installing utilities users run." umask 022; ${mkdir_p} "$(destdir)${bindir}" file in ${installables} ; \ $(install_program) $(install_strip) $${file} "$(destdir)${bindir}"/`echo $${file} | sed -e 's/${exeext}$$//' -e '$(transform)'`${exeext} ; \ done ${mkdir_p} "$(destdir)${datadir}/emacs/$(version)" $(install_data) ${srcdir}/readme.w32 "$(destdir)${datadir}/emacs/$(version)" uninstall: rm -f "$(destdir)${datadir}/emacs/$(version)/readme.w32" file in ${installables}; \ rm -f "$(destdir)${bindir}"/`echo $${file} | sed -e 's/${exeext}$$//' -e '$(transform)'`${exeext} ; \ done if [ -d "$(destdir)${archlibdir}" ]; \ (cd "$(destdir)${archlibdir}" && rm -f ${utilities}) \ fi mostlyclean: -rm -f core *.o *.res clean: mostlyclean -rm -f ${exe_files} distclean: clean -rm -f tags -rm -f makefile maintainer-clean: distclean true extraclean: maintainer-clean -rm -f *~ \#* ## test contents of directory. check: @echo "we don't have tests nt/ directory yet." tags: tags tags: ${exe_files:${exeext}=.c} ../lib-src/etags *.[ch] ## build programs addsection${exeext}: ${srcdir}/addsection.c $(cc) ${all_cflags} ${srcdir}/addsection.c -o addsection${exeext} addpm${exeext}: ${srcdir}/addpm.c ../src/epaths.h $(cc) ${all_cflags} ${srcdir}/addpm.c $(libs_addpm) -o addpm${exeext} ddeclient${exeext}: ${srcdir}/ddeclient.c $(cc) ${all_cflags} ${srcdir}/ddeclient.c -o ddeclient${exeext} cmdproxy${exeext}: ${srcdir}/cmdproxy.c $(cc) ${all_cflags} ${srcdir}/cmdproxy.c -o cmdproxy${exeext} runemacs${exeext}: ${srcdir}/runemacs.c $(emacsres) $(cc) ${all_cflags} ${srcdir}/runemacs.c $(emacsres) -mwindows \ -o runemacs${exeext} emacs.res: ${srcdir}/emacs.rc ${srcdir}/icons/emacs.ico ${srcdir}/$(emacs_manifest) ${windres} -i ${srcdir} -o coff -o emacs.res ${srcdir}/emacs.rc
this problem caused
windres =
is empty variable, in target
emacs.res: ${srcdir}/emacs.rc ${srcdir}/icons/emacs.ico ${srcdir}/$(emacs_manifest) ${windres} -i ${srcdir} -o coff -o emacs.res ${srcdir}/emacs.rc
the first argument omitted '-i' comes first , bash consider valid command.
by set windres variable, problem solved.
emacs compilation make cygwin mingw
Comments
Post a Comment