Understanding the command : Make distclean - makefile

Can someone elaborate the following command how does it work?
distclean: mrproper
#find $(srctree) $(RCS_FIND_IGNORE) \
\( -name '*.orig' -o -name '*.rej' -o -name '*~' \
-o -name '*.bak' -o -name '#*#' -o -name '.*.orig' \
-o -name '.*.rej' -o -size 0 \
-o -name '*%' -o -name '.*.cmd' -o -name 'core' \) \
-type f -print | xargs rm -f

when $make distclean is issued,
find command will search the files in $(srctree) with mentioned extensions.
#find $(srctree) $(RCS_FIND_IGNORE) \
\( -name '*.orig' -o -name '*.rej' -o -name '*~' \
-o -name '*.bak' -o -name '#*#' -o -name '.*.orig' \
-o -name '.*.rej' -o -size 0 \
-o -name '*%' -o -name '.*.cmd' -o -name 'core' \)
then absolute path of each file is taken using -print option and type of file as regular file using -type f.
-type f -print
Result of find result will be redirected to rm command to delete that file. While redirecting the find command result to rm command, you need to pass the file name one by one(This is not rm -r dirname). so xargs is used to read from stdin and build the command.
some useful links about xargs.
http://www.cyberciti.biz/faq/linux-unix-bsd-xargs-construct-argument-lists-utility/
Understanding the UNIX command xargs
http://linux.101hacks.com/linux-commands/xargs-command-examples/
some links to find command
http://www.tutorialized.com/tutorial/10-examples-of-using-find-command-in-Linux/67264
http://www.thegeekstuff.com/2009/03/15-practical-linux-find-command-examples/
http://www.thegeekstuff.com/2009/06/15-practical-unix-linux-find-command-examples-part-2/

Related

How can I compile all .cpp files except one using g++?

To compile all C++ files in my source directory I run
g++ -std=c++17 ../src/*.cpp -o ../out/a.out
How can I compile all cpp files in a given directory except for main.cpp?
bash:
shopt -s extglob
g++ -std=c++17 ../src/!(main).cpp -o ../out/a.out
ref: https://www.gnu.org/software/bash/manual/bash.html#Pattern-Matching
for f in $(find /path/to/files -name "*.cpp" ! -name "main.cpp")
do
g++ -std=c++17 path/to/files/"$f" -o /path/to/out/....
done
We can filter the glob into a Bash array:
unset files
for i in ../src/*.cpp
do test "$i" = '../src/main.cpp' || files+=("$i")
done
g++ -std=c++17 "${files[#]}" -o ../out/a.out
Or, using GNU grep and mapfile:
mapfile -d $'\0' -t files < <(printf '%s\0' ../src/*.cpp | grep -zv '/main\.cpp$')
g++ -std=c++17 "${files[#]}" -o ../out/a.out
you can also ls all .cpp files and pipe that into grep -v, to exclude a specific result.
g++ -std=c++17 `ls *.cpp | grep -v main.cpp` -o a.out

The find linux command cannot delete files

This is my shell command line:
find /home/ -depth -type f -iname "*php.jpg*" -o -iname "*php.gif*" -o -iname "*php.png*" -o -iname "*php.txt*" -o -iname "*html.jpg*" -o -iname "*html.gif*" -o -iname "*html.png*" -iname "*php3.jpg*" -delete
My permission is root.
When I run this command line withdown -delete, I receive a list of files. But I cannot delete files with this command.
Something wrong?
you can try this;
find /home/ -type f \( -iname "*php.jpg*" -o -iname "*php.gif*" -o -iname "*php.png*" -o -iname "*php.txt*" -o -iname "*html.jpg*" -o -iname "*html.gif*" -o -iname "*html.png*" -iname "*php3.jpg*" \) -delete
You need to surround the multiple -names with brackets as above;
"It is recommended that you enclose the file extensions in a bracket,
and also use the \ ( back slash) escape character as in the command."
The -delete action is available only in some find versions (eg GNU find). It was introduced by BSD OSs. From GNU findutils page:
The '-delete' action was introduced by the BSD family of operating systems.
You can use the more portable -exec action:
find /home/ -depth -type f \( -iname "*php.jpg*" -o -iname "*php.gif*" -o -iname "*php.png*" -o -iname "*php.txt*" -o -iname "*html.jpg*" -o -iname "*html.gif*" -o -iname "*html.png*" -iname "*php3.jpg*" \) -exec rm -f {} \;
Edit:
Note that to apply the -delete action on all -iname expressions, you must group them using escaped parenthesis:
find /home/ -depth -type f \( -iname "*php.jpg*" -o -iname "*php.gif*" -o -iname "*php.png*" -o -iname "*php.txt*" -o -iname "*html.jpg*" -o -iname "*html.gif*" -o -iname "*html.png*" -iname "*php3.jpg*" \) -delete
You can use:
find /home/ -depth -type f -iname "*php.jpg*" -o -iname "*php.gif*" -o -iname "*php.png*" -o -iname "*php.txt*" -o -iname "*html.jpg*" -o -iname "*html.gif*" -o -iname "*html.png*" -iname "*php3.jpg*" -exec rm -f {} \;

How is a for loop implemented in a Makefile recipe

Although the below script, is intended find a makefile in the sub directory level of 1 and make them recursively, I'm not able to find any success with it.
for file in `find $(pwd)/ -maxdepth 2 -mindepth 2 -type f -name 'Makefile'`; do\
make --directory=$(dirname $file);\
done
What might be the problem here?
In this recipe you do not intend $(pwd), $(dirname ...) and $file to be expanded by make,
but they are are, because you have not escaped $. (Strictly, you do not intend the $f in $file to be expanded by make). Re-write as:
for file in `find $$(pwd)/ -maxdepth 2 -mindepth 2 -type f -name 'Makefile'`; do\
make --directory=$$(dirname $$file);\
done
Later
Is there a better and simple way of making sub modules of a project?
Yes. The canonical way would be like:
# Identify the sub-directories some way, not necessarily like this:
SUBDIRS := $(dir $(shell find $$(pwd)/ -maxdepth 2 -mindepth 2 -type f -name 'Makefile'))
.PHONY: $(SUBDIRS)
all: $(SUBDIRS)
# Maybe some recipe...
$(SUBDIRS):
$(MAKE) -C $#

Make won't locate gcc

I'm trying to build GLEW. But the following happens:
C:\Users\User\Desktop\glew-1.11.0>dir
Volume in drive C is Windows7_OS
Volume Serial Number is B0CB-4CEE
Directory of C:\Users\User\Desktop\glew-1.11.0
13-12-2014 23:45 <DIR> .
13-12-2014 23:45 <DIR> ..
13-12-2014 23:44 <DIR> auto
11-08-2014 15:14 <DIR> bin
13-12-2014 22:48 <DIR> build
13-12-2014 22:48 <DIR> config
13-12-2014 22:48 <DIR> doc
11-08-2014 15:14 276 glew.pc.in
13-12-2014 22:48 <DIR> include
11-08-2014 15:14 <DIR> lib
11-08-2014 15:14 3.870 LICENSE.txt
14-12-2014 00:26 13.932 Makefile
11-08-2014 15:14 591 README.txt
13-12-2014 22:48 <DIR> src
13-12-2014 23:45 <DIR> tmp
11-08-2014 15:14 428 TODO.txt
5 File(s) 19.097 bytes
11 Dir(s) 339.881.320.448 bytes free
C:\Users\User\Desktop\glew-1.11.0>make
cc -DGLEW_NO_GLU -O2 -Wall -W -Iinclude -o tmp/cygwin/default/shared/glew.o -c src/glew.c
make: cc: Command not found
Makefile:127: recipe for target 'tmp/cygwin/default/shared/glew.o' failed
make: *** [tmp/cygwin/default/shared/glew.o] Error 127
C:\Users\User\Desktop\glew-1.11.0>which gcc
/cygdrive/c/MinGW/bin/gcc
C:\Users\User\Desktop\glew-1.11.0>gcc --version
gcc (i686-win32-dwarf-rev0, Built by MinGW-W64 project) 4.9.2
Copyright (C) 2014 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
As you can see gcc is installed. the C:\MinGW\bin folder where it's located is also in my PATH variable.
Here's the content of the Makefile:
#!gmake
## The OpenGL Extension Wrangler Library
## Copyright (C) 2002-2008, Milan Ikits <milan ikits[]ieee org>
## Copyright (C) 2002-2008, Marcelo E. Magallon <mmagallo[]debian org>
## Copyright (C) 2002, Lev Povalahev
## All rights reserved.
##
## Redistribution and use in source and binary forms, with or without
## modification, are permitted provided that the following conditions are met:
##
## * Redistributions of source code must retain the above copyright notice,
## this list of conditions and the following disclaimer.
## * Redistributions in binary form must reproduce the above copyright notice,
## this list of conditions and the following disclaimer in the documentation
## and/or other materials provided with the distribution.
## * The name of the author may be used to endorse or promote products
## derived from this software without specific prior written permission.
##
## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
## AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
## IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
## ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
## LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
## CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
## SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
## INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
## CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
## ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
## THE POSSIBILITY OF SUCH DAMAGE.
include config/version
SHELL = /bin/sh
SYSTEM ?= $(shell config/config.guess | cut -d - -f 3 | sed -e 's/[0-9\.]//g;')
SYSTEM.SUPPORTED = $(shell test -f config/Makefile.$(SYSTEM) && echo 1)
ifeq ($(SYSTEM.SUPPORTED), 1)
include config/Makefile.$(SYSTEM)
else
$(error "Platform '$(SYSTEM)' not supported")
endif
GLEW_PREFIX ?= /usr
GLEW_DEST ?= /usr
BINDIR ?= $(GLEW_DEST)/bin
LIBDIR ?= $(GLEW_DEST)/lib
INCDIR ?= $(GLEW_DEST)/include/GL
ifneq ($(GLEW_NO_GLU), -DGLEW_NO_GLU)
LIBGLU = glu
endif
DIST_NAME ?= glew-$(GLEW_VERSION)
DIST_SRC_ZIP ?= $(shell pwd)/$(DIST_NAME).zip
DIST_SRC_TGZ ?= $(shell pwd)/$(DIST_NAME).tgz
DIST_WIN32 ?= $(shell pwd)/$(DIST_NAME)-win32.zip
DIST_DIR := $(shell mktemp -d /tmp/glew.XXXXXX)/$(DIST_NAME)
# To disable stripping of binaries either:
# - use STRIP= on gmake command-line
# - edit this makefile to set STRIP to the empty string
#
# To disable symlinks:
# - use LN= on gmake command-line
AR ?= ar
INSTALL ?= install
STRIP ?= strip
RM ?= rm -f
LN ?= ln -sf
ifneq (,$(filter debug,$(MAKECMDGOALS)))
OPT = -g
else
OPT = $(POPT)
endif
INCLUDE = -Iinclude
CFLAGS = $(OPT) $(WARN) $(INCLUDE) $(CFLAGS.EXTRA)
all debug: glew.lib glew.lib.mx glew.bin
# GLEW shared and static libraries
LIB.LDFLAGS := $(LDFLAGS.EXTRA) $(LDFLAGS.GL)
LIB.LIBS := $(GL_LDFLAGS)
LIB.SRCS := src/glew.c
LIB.SRCS.NAMES := $(notdir $(LIB.SRCS))
LIB.OBJS := $(addprefix tmp/$(SYSTEM)/default/static/,$(LIB.SRCS.NAMES))
LIB.OBJS := $(LIB.OBJS:.c=.o)
LIB.SOBJS := $(addprefix tmp/$(SYSTEM)/default/shared/,$(LIB.SRCS.NAMES))
LIB.SOBJS := $(LIB.SOBJS:.c=.o)
LIB.OBJS.MX := $(addprefix tmp/$(SYSTEM)/mx/static/,$(LIB.SRCS.NAMES))
LIB.OBJS.MX := $(LIB.OBJS.MX:.c=.o)
LIB.SOBJS.MX := $(addprefix tmp/$(SYSTEM)/mx/shared/,$(LIB.SRCS.NAMES))
LIB.SOBJS.MX := $(LIB.SOBJS.MX:.c=.o)
glew.lib: lib lib/$(LIB.SHARED) lib/$(LIB.STATIC) glew.pc
lib:
mkdir lib
lib/$(LIB.STATIC): $(LIB.OBJS)
$(AR) cr $# $^
ifneq ($(STRIP),)
$(STRIP) -x $#
endif
lib/$(LIB.SHARED): $(LIB.SOBJS)
$(LD) $(LDFLAGS.SO) -o $# $^ $(LIB.LDFLAGS) $(LIB.LIBS)
ifneq ($(LN),)
$(LN) $(LIB.SHARED) lib/$(LIB.SONAME)
$(LN) $(LIB.SHARED) lib/$(LIB.DEVLNK)
endif
ifneq ($(STRIP),)
$(STRIP) -x $#
endif
tmp/$(SYSTEM)/default/static/glew.o: src/glew.c include/GL/glew.h include/GL/wglew.h include/GL/glxew.h
#mkdir -p $(dir $#)
$(CC) -DGLEW_NO_GLU -DGLEW_STATIC $(CFLAGS) $(CFLAGS.SO) -o $# -c $<
tmp/$(SYSTEM)/default/shared/glew.o: src/glew.c include/GL/glew.h include/GL/wglew.h include/GL/glxew.h
#mkdir -p $(dir $#)
$(CC) -DGLEW_NO_GLU $(CFLAGS) $(CFLAGS.SO) -o $# -c $<
# Force re-write of glew.pc, GLEW_DEST can vary
.PHONY: glew.pc
glew.pc: glew.pc.in
sed \
-e "s|#prefix#|$(GLEW_PREFIX)|g" \
-e "s|#libdir#|$(LIBDIR)|g" \
-e "s|#exec_prefix#|$(BINDIR)|g" \
-e "s|#includedir#|$(INCDIR)|g" \
-e "s|#version#|$(GLEW_VERSION)|g" \
-e "s|#cflags#||g" \
-e "s|#libname#|$(NAME)|g" \
-e "s|#requireslib#|$(LIBGLU)|g" \
< $< > $#
# GLEW MX static and shared libraries
glew.lib.mx: lib lib/$(LIB.SHARED.MX) lib/$(LIB.STATIC.MX) glewmx.pc
lib/$(LIB.STATIC.MX): $(LIB.OBJS.MX)
$(AR) cr $# $^
lib/$(LIB.SHARED.MX): $(LIB.SOBJS.MX)
$(LD) $(LDFLAGS.SO.MX) -o $# $^ $(LIB.LDFLAGS) $(LIB.LIBS)
ifneq ($(LN),)
$(LN) $(LIB.SHARED.MX) lib/$(LIB.SONAME.MX)
$(LN) $(LIB.SHARED.MX) lib/$(LIB.DEVLNK.MX)
endif
ifneq ($(STRIP),)
$(STRIP) -x $#
endif
tmp/$(SYSTEM)/mx/static/glew.o: src/glew.c include/GL/glew.h include/GL/wglew.h include/GL/glxew.h
#mkdir -p $(dir $#)
$(CC) -DGLEW_NO_GLU -DGLEW_MX -DGLEW_STATIC $(CFLAGS) $(CFLAGS.SO) -o $# -c $<
tmp/$(SYSTEM)/mx/shared/glew.o: src/glew.c include/GL/glew.h include/GL/wglew.h include/GL/glxew.h
#mkdir -p $(dir $#)
$(CC) -DGLEW_NO_GLU -DGLEW_MX $(CFLAGS) $(CFLAGS.SO) -o $# -c $<
# Force re-write of glewmx.pc, GLEW_DEST can vary
.PHONY: glewmx.pc
glewmx.pc: glew.pc.in
sed \
-e "s|#prefix#|$(GLEW_PREFIX)|g" \
-e "s|#libdir#|$(LIBDIR)|g" \
-e "s|#exec_prefix#|$(BINDIR)|g" \
-e "s|#includedir#|$(INCDIR)|g" \
-e "s|#version#|$(GLEW_VERSION)|g" \
-e "s|#cflags#|-DGLEW_MX|g" \
-e "s|#libname#|$(NAME)mx|g" \
-e "s|#requireslib#|$(LIBGLU)|g" \
< $< > $#
# GLEW utility programs
BIN.LIBS = -Llib $(LDFLAGS.DYNAMIC) -l$(NAME) $(LDFLAGS.EXTRA) $(LDFLAGS.GL)
GLEWINFO.BIN := glewinfo$(BIN.SUFFIX)
GLEWINFO.BIN.SRC := src/glewinfo.c
GLEWINFO.BIN.OBJ := $(addprefix tmp/$(SYSTEM)/default/shared/,$(notdir $(GLEWINFO.BIN.SRC)))
GLEWINFO.BIN.OBJ := $(GLEWINFO.BIN.OBJ:.c=.o)
VISUALINFO.BIN := visualinfo$(BIN.SUFFIX)
VISUALINFO.BIN.SRC := src/visualinfo.c
VISUALINFO.BIN.OBJ := $(addprefix tmp/$(SYSTEM)/default/shared/,$(notdir $(VISUALINFO.BIN.SRC)))
VISUALINFO.BIN.OBJ := $(VISUALINFO.BIN.OBJ:.c=.o)
# Don't build glewinfo or visualinfo for NaCL, yet.
ifneq ($(filter nacl%,$(SYSTEM)),)
glew.bin: glew.lib bin
else
glew.bin: glew.lib bin bin/$(GLEWINFO.BIN) bin/$(VISUALINFO.BIN)
endif
bin:
mkdir bin
bin/$(GLEWINFO.BIN): $(GLEWINFO.BIN.OBJ) lib/$(LIB.SHARED)
$(CC) $(CFLAGS) -o $# $(GLEWINFO.BIN.OBJ) $(BIN.LIBS)
ifneq ($(STRIP),)
$(STRIP) -x $#
endif
bin/$(VISUALINFO.BIN): $(VISUALINFO.BIN.OBJ) lib/$(LIB.SHARED)
$(CC) $(CFLAGS) -o $# $(VISUALINFO.BIN.OBJ) $(BIN.LIBS)
ifneq ($(STRIP),)
$(STRIP) -x $#
endif
$(GLEWINFO.BIN.OBJ): $(GLEWINFO.BIN.SRC) include/GL/glew.h include/GL/wglew.h include/GL/glxew.h
#mkdir -p $(dir $#)
$(CC) -DGLEW_NO_GLU $(CFLAGS) $(CFLAGS.SO) -o $# -c $<
$(VISUALINFO.BIN.OBJ): $(VISUALINFO.BIN.SRC) include/GL/glew.h include/GL/wglew.h include/GL/glxew.h
#mkdir -p $(dir $#)
$(CC) -DGLEW_NO_GLU $(CFLAGS) $(CFLAGS.SO) -o $# -c $<
# Install targets
install.all: install install.mx install.bin
install: install.include install.lib install.pkgconfig
install.mx: install.include install.lib.mx install.pkgconfig.mx
install.lib: glew.lib
$(INSTALL) -d -m 0755 "$(DESTDIR)$(LIBDIR)"
# runtime
ifeq ($(filter-out mingw% cygwin,$(SYSTEM)),)
$(INSTALL) -d -m 0755 "$(DESTDIR)$(BINDIR)"
$(INSTALL) -m 0755 lib/$(LIB.SHARED) "$(DESTDIR)$(BINDIR)/"
else
$(INSTALL) -m 0644 lib/$(LIB.SHARED) "$(DESTDIR)$(LIBDIR)/"
endif
ifneq ($(LN),)
$(LN) $(LIB.SHARED) "$(DESTDIR)$(LIBDIR)/$(LIB.SONAME)"
endif
# development files
ifeq ($(filter-out mingw% cygwin,$(SYSTEM)),)
$(INSTALL) -m 0644 lib/$(LIB.DEVLNK) "$(DESTDIR)$(LIBDIR)/"
endif
ifneq ($(LN),)
$(LN) $(LIB.SHARED) "$(DESTDIR)$(LIBDIR)/$(LIB.DEVLNK)"
endif
$(INSTALL) -m 0644 lib/$(LIB.STATIC) "$(DESTDIR)$(LIBDIR)/"
install.lib.mx: glew.lib.mx
$(INSTALL) -d -m 0755 "$(DESTDIR)$(LIBDIR)"
# runtime
ifeq ($(filter-out mingw% cygwin,$(SYSTEM)),)
$(INSTALL) -d -m 0755 "$(DESTDIR)$(BINDIR)"
$(INSTALL) -m 0755 lib/$(LIB.SHARED.MX) "$(DESTDIR)$(BINDIR)/"
else
$(INSTALL) -m 0644 lib/$(LIB.SHARED.MX) "$(DESTDIR)$(LIBDIR)/"
endif
ifneq ($(LN),)
$(LN) $(LIB.SHARED.MX) "$(DESTDIR)$(LIBDIR)/$(LIB.SONAME.MX)"
endif
# development files
ifeq ($(filter-out mingw% cygwin,$(SYSTEM)),)
$(INSTALL) -m 0644 lib/$(LIB.DEVLNK.MX) "$(DESTDIR)$(LIBDIR)/"
endif
ifneq ($(LN),)
$(LN) $(LIB.SHARED.MX) "$(DESTDIR)$(LIBDIR)/$(LIB.DEVLNK.MX)"
endif
$(INSTALL) -m 0644 lib/$(LIB.STATIC.MX) "$(DESTDIR)$(LIBDIR)/"
install.bin: glew.bin
$(INSTALL) -d -m 0755 "$(DESTDIR)$(BINDIR)"
$(INSTALL) -s -m 0755 bin/$(GLEWINFO.BIN) bin/$(VISUALINFO.BIN) "$(DESTDIR)$(BINDIR)/"
install.include:
$(INSTALL) -d -m 0755 "$(DESTDIR)$(INCDIR)"
$(INSTALL) -m 0644 include/GL/wglew.h "$(DESTDIR)$(INCDIR)/"
$(INSTALL) -m 0644 include/GL/glew.h "$(DESTDIR)$(INCDIR)/"
$(INSTALL) -m 0644 include/GL/glxew.h "$(DESTDIR)$(INCDIR)/"
install.pkgconfig: glew.pc
$(INSTALL) -d -m 0755 "$(DESTDIR)$(LIBDIR)"
$(INSTALL) -d -m 0755 "$(DESTDIR)$(LIBDIR)/pkgconfig"
$(INSTALL) -m 0644 glew.pc "$(DESTDIR)$(LIBDIR)/pkgconfig/"
install.pkgconfig.mx: glewmx.pc
$(INSTALL) -d -m 0755 "$(DESTDIR)$(LIBDIR)"
$(INSTALL) -d -m 0755 "$(DESTDIR)$(LIBDIR)/pkgconfig"
$(INSTALL) -m 0644 glewmx.pc "$(DESTDIR)$(LIBDIR)/pkgconfig/"
uninstall:
$(RM) "$(DESTDIR)$(INCDIR)/wglew.h"
$(RM) "$(DESTDIR)$(INCDIR)/glew.h"
$(RM) "$(DESTDIR)$(INCDIR)/glxew.h"
$(RM) "$(DESTDIR)$(LIBDIR)/$(LIB.DEVLNK)" "$(DESTDIR)$(LIBDIR)/$(LIB.DEVLNK.MX)"
ifeq ($(filter-out mingw% cygwin,$(SYSTEM)),)
$(RM) "$(DESTDIR)$(BINDIR)/$(LIB.SHARED)" "$(DESTDIR)$(BINDIR)/$(LIB.SHARED.MX)"
else
$(RM) "$(DESTDIR)$(LIBDIR)/$(LIB.SONAME)" "$(DESTDIR)$(LIBDIR)/$(LIB.SONAME.MX)"
$(RM) "$(DESTDIR)$(LIBDIR)/$(LIB.SHARED)" "$(DESTDIR)$(LIBDIR)/$(LIB.SHARED.MX)"
endif
$(RM) "$(DESTDIR)$(LIBDIR)/$(LIB.STATIC)" "$(DESTDIR)$(LIBDIR)/$(LIB.STATIC.MX)"
$(RM) "$(DESTDIR)$(BINDIR)/$(GLEWINFO.BIN)" "$(DESTDIR)$(BINDIR)/$(VISUALINFO.BIN)"
clean:
$(RM) -r tmp/
$(RM) -r lib/
$(RM) -r bin/
$(RM) glew.pc glewmx.pc
distclean: clean
find . -name \*~ | xargs $(RM)
find . -name .\*.sw\? | xargs $(RM)
# Distributions
dist-win32:
$(RM) -r $(DIST_DIR)
mkdir -p $(DIST_DIR)
cp -a include $(DIST_DIR)
cp -a doc $(DIST_DIR)
cp -a *.txt $(DIST_DIR)
cp -a bin $(DIST_DIR)
cp -a lib $(DIST_DIR)
$(RM) -f $(DIST_DIR)/bin/*/*/*.pdb $(DIST_DIR)/bin/*/*/*.exp
$(RM) -f $(DIST_DIR)/bin/*/*/glewinfo-*.exe $(DIST_DIR)/bin/*/*/visualinfo-*.exe
$(RM) -f $(DIST_DIR)/lib/*/*/*.pdb $(DIST_DIR)/lib/*/*/*.exp
unix2dos $(DIST_DIR)/include/GL/*.h
unix2dos $(DIST_DIR)/doc/*.txt
unix2dos $(DIST_DIR)/doc/*.html
unix2dos $(DIST_DIR)/*.txt
rm -f $(DIST_WIN32)
cd $(DIST_DIR)/.. && zip -rv9 $(DIST_WIN32) $(DIST_NAME)
$(RM) -r $(DIST_DIR)
dist-src:
$(RM) -r $(DIST_DIR)
mkdir -p $(DIST_DIR)
mkdir -p $(DIST_DIR)/bin
mkdir -p $(DIST_DIR)/lib
cp -a auto $(DIST_DIR)
$(RM) -Rf $(DIST_DIR)/auto/registry
cp -a build $(DIST_DIR)
cp -a config $(DIST_DIR)
cp -a src $(DIST_DIR)
cp -a doc $(DIST_DIR)
cp -a include $(DIST_DIR)
cp -a *.txt $(DIST_DIR)
cp -a Makefile $(DIST_DIR)
cp -a glew.pc.in $(DIST_DIR)
find $(DIST_DIR) -name '*.o' | xargs $(RM) -r
find $(DIST_DIR) -name '*~' | xargs $(RM) -r
find $(DIST_DIR) -name CVS -o -name .cvsignore | xargs $(RM) -r
find $(DIST_DIR) -name .svn | xargs $(RM) -r
find $(DIST_DIR) -name "*.patch" | xargs $(RM) -r
dos2unix $(DIST_DIR)/Makefile
dos2unix $(DIST_DIR)/auto/Makefile
dos2unix $(DIST_DIR)/config/*
unix2dos $(DIST_DIR)/auto/core/*
unix2dos $(DIST_DIR)/auto/extensions/*
find $(DIST_DIR) -name '*.h' | xargs unix2dos
find $(DIST_DIR) -name '*.c' | xargs unix2dos
find $(DIST_DIR) -name '*.txt' | xargs unix2dos
find $(DIST_DIR) -name '*.html' | xargs unix2dos
find $(DIST_DIR) -name '*.css' | xargs unix2dos
find $(DIST_DIR) -name '*.sh' | xargs unix2dos
find $(DIST_DIR) -name '*.pl' | xargs unix2dos
find $(DIST_DIR) -name 'Makefile' | xargs unix2dos
find $(DIST_DIR) -name '*.in' | xargs unix2dos
find $(DIST_DIR) -name '*.pm' | xargs unix2dos
find $(DIST_DIR) -name '*.rc' | xargs unix2dos
rm -f $(DIST_SRC_ZIP)
cd $(DIST_DIR)/.. && zip -rv9 $(DIST_SRC_ZIP) $(DIST_NAME)
dos2unix $(DIST_DIR)/Makefile
dos2unix $(DIST_DIR)/auto/Makefile
dos2unix $(DIST_DIR)/config/*
dos2unix $(DIST_DIR)/auto/core/*
dos2unix $(DIST_DIR)/auto/extensions/*
find $(DIST_DIR) -name '*.h' | xargs dos2unix
find $(DIST_DIR) -name '*.c' | xargs dos2unix
find $(DIST_DIR) -name '*.txt' | xargs dos2unix
find $(DIST_DIR) -name '*.html' | xargs dos2unix
find $(DIST_DIR) -name '*.css' | xargs dos2unix
find $(DIST_DIR) -name '*.sh' | xargs dos2unix
find $(DIST_DIR) -name '*.pl' | xargs dos2unix
find $(DIST_DIR) -name 'Makefile' | xargs dos2unix
find $(DIST_DIR) -name '*.in' | xargs dos2unix
find $(DIST_DIR) -name '*.pm' | xargs dos2unix
find $(DIST_DIR) -name '*.rc' | xargs dos2unix
rm -f $(DIST_SRC_TGZ)
cd $(DIST_DIR)/.. && env GZIP=-9 tar cvzf $(DIST_SRC_TGZ) $(DIST_NAME)
$(RM) -r $(DIST_DIR)
extensions:
$(MAKE) -C auto
.PHONY: clean distclean tardist dist-win32 dist-src
I'm not really knowledgeable about this stuff myself.
I fixed it. In my PATH variable, I had included both C:\MinGW\bin and C:\cygwin\bin. Removing C:\cygwin\bin did the trick. My thought process was that I should remove 1 of them, since they both contain a make executable.
I don't know why this worked, so if someone could exlpain, that would be nice.

bash: cannot execute binary file while trying mesh_view in trimesh2

I am trying to run trimesh2 on my 64-bit debian,
but whenever I try to run mesh_view or any other mesh command, it says
cannot execute binary file
What should I do to run the mesh? The Makefile looks like this:
all win32 linux32 linux64 darwin32 darwin64 clean:
$(MAKE) -C libsrc $#
$(MAKE) -C gluit $#
$(MAKE) -C utilsrc $#
debug:
$(MAKE) -C libsrc DEBUG=y
$(MAKE) -C gluit DEBUG=y
$(MAKE) -C utilsrc DEBUG=y
FINDCMD = find trimesh2 -name 'OBJ*' -prune -o -name CVS -prune -o -type f -print
tar:
cd .. && tar zcvf trimesh2.tar.gz `$(FINDCMD) | sort`
zip:
cd .. && $(FINDCMD) | sort | zip -9 trimesh2 -#
.PHONY : all clean debug default tar win32 zip

Resources