# seuser tool

TCL-FILES	= se_user.tcl
SEUSER_HELP_FILE = seuser_help.txt
SEUSER_CONF_FILE = seuser.conf
LIBAPOL		= ../lib/libapol.a
LIBSEUSER	= ../lib/libseuser.a
GUI-OBJ		= seuser_gui.o $(LIBAPOL) $(LIBSEUSER)

TE_PROGS_DIR	= $(POLICY_SRC_DIR)/policy/domains/program
FC_PROGS_DIR	= $(POLICY_SRC_DIR)/policy/file_contexts/program

seuser: $(GUI-OBJ)
	$(CC) $(TCL_LIBINC) -o $@ $(GUI-OBJ) $(LINKFLAGS) $(TCL_LIBS)


%.o:  %.c 
	$(CC) $(CFLAGS) -c $<

$(LIBAPOL): 
	cd ../ ; $(MAKE) libapol

$(LIBSEUSER):
	cd ../ ; $(MAKE) libseuser

# The following two targets are for when seuser is installed during the 
# selinux installation procedure.

# TE_FILE_INSTALL_DIR and FC_FILE_INSTALL_DIR are assumed to be passed down
# from a higher level Makefile.

insert-policy:
	install -m 644 ../policy/seuser.te $(TE_FILE_INSTALL_DIR)
	install -m 644 ../policy/seuser.fc $(FC_FILE_INSTALL_DIR)

sys-all: seuser

sys-install: seuser
	install -m 755 seuser $(BINDIR)
	install -m 644 $(SEUSER_CONF_FILE) $(INSTALL_LIBDIR)
	install -m 644 $(TCL-FILES) $(SEUSER_HELP_FILE) $(INSTALL_LIBDIR)

# NOTE The following targets assume selinux and the -X option on install

seuser-policy:
	install -m 644 -X system_u:object_r:policy_src_t ../policy/seuser.te $(TE_PROGS_DIR)
	install -m 644 -X system_u:object_r:policy_src_t ../policy/seuser.fc $(FC_PROGS_DIR)
	# Must re-load policy before we can install and label
	make -C $(POLICY_SRC_DIR)/policy/ clean
	make -C $(POLICY_SRC_DIR)/policy/ load

install: seuser seuser-policy
	install -m 755 -X system_u:object_r:seuser_exec_t seuser $(BINDIR)
	install -m 644 -X system_u:object_r:seuser_conf_t $(SEUSER_CONF_FILE) $(INSTALL_LIBDIR)
	install -m 644 $(TCL-FILES) $(SEUSER_HELP_FILE) $(INSTALL_LIBDIR)

clean:
	rm -f *.o  core seuser *~
bare:
	rm -f *.o  core seuser *~ 






