$(BIN): $(USER_O) $(LIB_SO)
$(CXX) -o $(BIN) $(USER_O) -L. -l$(LIB_NAME)
# note: implicit rule for generating $(USER_O) (i.e., userprog.c -> userprog.o)
$(LIB_SO): $(MODEL_O) $(MODEL_H) $(SHMEM_O) $(SHMEM_H)
$(BIN): $(USER_O) $(LIB_SO)
$(CXX) -o $(BIN) $(USER_O) -L. -l$(LIB_NAME)
# note: implicit rule for generating $(USER_O) (i.e., userprog.c -> userprog.o)
$(LIB_SO): $(MODEL_O) $(MODEL_H) $(SHMEM_O) $(SHMEM_H)