Is this a good way to become root in a makefile?
Is this a good way to become root in a makefile?
SHELL = / bin / sh INSTDIR = / usr / bin / OBJS = main.o file.o gen.o stat.o program1: $ (OBJS) gcc -o program1 $ (OBJS) main.o: main.c file.h gen.h stat.h gcc -c main.c file.o: file.c file.h gcc -c file.c gen.o: gen.c gen.h gcc -c gen.c stat.o: stat.c stat.h gcc -c stat.c clean: rm -f $ (OBJS) program1 install: @if [-f program1]; then \ if [$$ (id -u) -eq 0]; then \ cp program1 $ (INSTDIR) && \ echo "Installed in $ (INSTDIR)"; \ else \ (sudo cp program1 $ (INSTDIR) 2> / dev / null && \ echo "Installed in $ (INSTDIR)") || \ (echo 'No sudo on this machine, trying su.' \ && su -c "cp program1 $ (INSTDIR)" && \ echo "Installed in $ (INSTDIR)"); \ fi; \ else \ echo "There was no program to install, run make." ; \ fi uninstall: @if [-f $ (INSTDIR) program1]; then \ if [$$ (id -u) -eq 0]; then \ rm $ (INSTDIR) program1 && \ echo "Uninstalled in $ (INSTDIR)"; \ else \ (sudo rm $ (INSTDIR) program1 2> / dev / null && \ echo "Uninstalled in $ (INSTDIR)") || \ (echo 'No sudo on this machine, trying su.' \ && su -c "rm $ (INSTDIR) program1" && \ echo "Uninstalled in $ (INSTDIR)"); \ fi; \ else \ echo "There was no program to remove." ; \ fi
+2
source to share